Python Functies onder de knie krijgen: Syntaxis, Types en Praktische Voorbeelden
Python Functies
In dit artikel leer je over functies, wat een functie is, de syntaxis, componenten en typen functies. Ook leer je een functie in Python aan te maken.
Video: Introductie tot Python Functies
Wat is een functie in Python?
In Python is een functie een groep gerelateerde statements die een specifieke taak uitvoert.
Functies helpen ons programma op te breken in kleinere, modulaire stukken. Naarmate ons programma groter wordt, maken functies het georganiseerder en beheersbaarder.
Bovendien vermijden ze herhaling en maken ze code herbruikbaar.
Syntaxis van Functie
def function_name(parameters):
"""docstring"""
statement(s)
Bovenstaande is een functiedefinitie die uit de volgende componenten bestaat.
- Keyword
defdat het begin van de functieheader markeert. - Een functienaam om de functie uniek te identificeren. Functienamen volgen dezelfde regels als identifiers in Python.
- Parameters (argumenten) waartegen we waarden aan een functie doorgeven. Ze zijn optioneel.
- Een dubbele punt (:) om het einde van de functieheader te markeren.
- Optionele documentatiestring (docstring) om te beschrijven wat de functie doet.
- Één of meer geldige python-statements die de functiebody vormen. Statements moeten hetzelfde indentatieniveau hebben (meestal 4 spaties).
- Een optioneel
returnstatement om een waarde uit de functie te retourneren.
Voorbeeld van een functie
def greet(name):
"""Deze functie groet de persoon die als parameter doorgegeven wordt"""
print("Hallo, " + name + ". Goedemorgen!")
Hoe een functie in python aanroepen?
Eenmaal gedefinieerd, kun je een functie aanroepen vanuit een andere functie, programma, of zelfs de Python-prompt. Om een functie aan te roepen typ je simpelweg de functienaam met de juiste parameters.
>>> greet('Paul')
Hallo, Paul. Goedemorgen!
Probeer de bovenstaande code in het Python-programma met de functiedefinitie te draaien om de output te zien.
def greet(name):
"""Deze functie groet de persoon die als parameter doorgegeven wordt"""
print("Hallo, " + name + ". Goedemorgen!")
greet('Paul')
Let op: In python moet de functiedefinitie altijd voor de functie-aanroep staan. Anders krijg je een fout. Bijvoorbeeld:
# functie-aanroep
greet('Paul')
# functiedefinitie
def greet(name):
"""Deze functie groet de persoon die als parameter doorgegeven wordt"""
print("Hallo, " + name + ". Goedemorgen!")
# Error: name 'greet' is not defined
Docstrings
Hoewel optioneel, is documentatie een goede programmeerpraktijk. Ten unless je je kunt herinneren wat je vorige week te diner had, documenteer altijd je code.
In het bovenstaande voorbeeld hebben we een docstring direct onder de functieheader. We gebruiken meestal triple quotes zodat de docstring over meerdere regels kan lopen. Deze string is beschikbaar als het __doc__ attribuut van de functie.
Bijvoorbeeld:
Probeer het volgende in de Python-shell te draaien om de output te zien.
>>> print(greet.__doc__)
Deze functie groet de persoon die als parameter doorgegeven wordt
Om meer te leren over docstrings in Python, bezoek Python Docstrings.
Het return statement
Het return statement wordt gebruikt om een functie te verlaten en terug te keren naar de plek waar het aangeroepen werd.
Syntaxis van return
return [expression_list]
Dit statement kan een expressie bevatten die geëvalueerd wordt en de waarde wordt geretourneerd. Als er geen expressie in het statement zit of het return statement zelf niet in de functie zit, dan retourneert de functie het None object.
Bijvoorbeeld:
>>> print(greet("May"))
Hallo, May. Goedemorgen!
None
Hier is None de geretourneerde waarde omdat greet() direct de naam print en geen return statement gebruikt.
Voorbeeld van return
def absolute_value(num):
"""Deze functie retourneert de absolute waarde van het ingevoerde getal"""
if num >= 0:
return num
else:
return -num
print(absolute_value(2))
print(absolute_value(-4))
Output
2 4
Hoe Functie werkt in Python?

Scope en Levensduur van variabelen
Scope van een variabele is het deel van een programma waar de variabele herkend wordt. Parameters en variabelen gedefinieerd binnen een functie zijn niet zichtbaar vanaf buiten de functie. Dus ze hebben een lokale scope.
De levensduur van een variabele is de periode waarin de variabele in het geheugen bestaat. De levensduur van variabelen binnen een functie is zo lang als de functie uitvoert.
Ze worden vernietigd zodra we uit de functie returnen. Dus een functie onthoudt de waarde van een variabele niet van eerdere aanroepen.
Hier is een voorbeeld om de scope van een variabele binnen een functie te illustreren.
def my_func():
x = 10
print("Waarde binnen functie:", x)
x = 20
my_func()
print("Waarde buiten functie:", x)
Output
Waarde binnen functie: 10 Waarde buiten functie: 20
Hier zien we dat de waarde van x initieel 20 is. Hoewel de functie my_func() de waarde van x veranderde naar 10, beïnvloedde het de waarde buiten de functie niet.
Dit is omdat de variabele x binnen de functie anders is (lokaal voor de functie) dan de buiten. Hoewel ze dezelfde namen hebben, zijn het twee verschillende variabelen met verschillende scopes.
Aan de andere kant, variabelen buiten de functie zijn zichtbaar van binnen. Ze hebben een globale scope.
We kunnen deze waarden lezen van binnen de functie maar niet wijzigen (schrijven). Om de waarde van variabelen buiten de functie te wijzigen, moeten ze gedeclareerd worden als globale variabelen met het keyword global.
Types Functies
Basicaal kunnen we functies verdelen in de volgende twee typen:
- Built-in functies - Functies die in Python ingebouwd zijn.
- User-defined functies - Functies gedefinieerd door de gebruikers zelf.
Python
- 10 Essentiële Insight-functies voor het optimaliseren van Stratasys FDM-printen
- Python Operators onder de knie krijgen: Een uitgebreide gids
- Python Functie-argumenten onder de knie krijgen: Positionele, Keyword en Default Parameters
- Python Lambda Functies: Een praktische gids voor anonieme functies
- Python-dictionaries beheersen: aanmaken, manipuleren en geavanceerde technieken
- Python-generators: efficiënte iteratie en geavanceerde use cases
- Python-closures uitgelegd: hoe geneste functies variabelen vangen
- Python-decorators beheersen: functies verbeteren met expert-technieken
- Python's strip()-methode beheersen: Uitgebreide handleiding & praktische voorbeelden
- Python lambda-functies beheersen: praktische voorbeelden & best practices
- Python round()-functie uitgelegd met praktische voorbeelden