Naar de inhoud
Inloggen

Wat is een functie?

Een functie is een stukje programma met een naam. Roep je de naam, dan doet de computer alles wat erin staat. Zo hoef je iets maar één keer uit te leggen en kun je het daarna zo vaak gebruiken als je wilt.

Een naam met haakjes

In Python herken je een functie aan de haakjes: vooruit(), bouw_brug(), zeg(3). Tussen de haakjes staat soms iets wat de functie nodig heeft: zeg(3) zegt het getal 3, voor_je_is("water") kijkt of er water voor je is. Dat noemen we een argument. Een functie zonder argument heeft lege haakjes, maar de haakjes moeten er wel staan: vooruit zonder haakjes doet niets, en Progio legt dat uit als het gebeurt.

Zelf een functie maken

Met def maak je je eigen functie. Bij de slagboom in de stoomtijd ziet dat er zo uit:

def bij_wagon():
    open_slagboom()

wanneer_wagon_komt(bij_wagon)

De eerste regel geeft de functie een naam en eindigt op een dubbele punt. De regels eronder springen in: dat is wat de functie doet. De laatste regel zegt: elke keer als er een wagon komt, doe bij_wagon. Let op dat daar géén haakjes staan: je geeft de functie zelf mee, je roept hem nog niet aan. Dat verschil is klein op papier en groot in betekenis; kinderen leren het door het te zien gebeuren.

Een antwoord teruggeven

Sommige functies doen iets, andere geven een antwoord. voor_je_is("water") geeft waar of niet waar terug, en daarom kun je hem na if zetten. bij_station() ook. In de latere tijdperken schrijf je zulke functies zelf met return: een functie die uit een lijst metingen de hoogste haalt, of een koers berekent uit snelheid en tijd.

Waarom functies belangrijk zijn

Zonder functies zou elk programma één lange lijst zijn. Met functies deel je een groot probleem op in kleine stukken die elk een naam hebben: dat heet decompositie, en de kerndoelen digitale geletterdheid noemen het als kern van computationeel denken. Het maakt programma's korter, leesbaarder en makkelijker te verbeteren. Als er iets misgaat, weet je in welke functie je moet kijken.

Waar je het in Progio tegenkomt

Bij de Romeinen gebruik je functies als blokken zonder het te weten. In de stoomtijd zie je de namen met haakjes, en in level 11 schrijf je je eerste eigen def. Bij ruimtevaart worden functies met argumenten en return het gereedschap voor elke missie. Zie ook variabele en gebeurtenis.

Veelgestelde vragen

Waarom staan er haakjes achter een functie?

De haakjes zeggen: voer dit uit. Ertussen staat wat de functie nodig heeft. Zonder haakjes noem je de functie alleen bij naam, zoals bij wanneer_wagon_komt(bij_wagon).

Wat betekent global in een functie?

Als je binnen een functie een variabele van buiten wilt veranderen (zoals een teller), zeg je dat met global naam. Anders maakt Python een nieuwe, lokale variabele.