Python-functies
Python-functies
In dit artikel leert u over functies, wat een functie is, de syntaxis, componenten en soorten functies. Ook leer je een functie te maken in Python.
Video:Inleiding tot Python-functies
Wat is een functie in Python?
In Python is een functie een groep gerelateerde instructies die een specifieke taak uitvoeren.
Functies helpen ons programma op te delen in kleinere en modulaire brokken. Naarmate ons programma groter en groter wordt, maken functies het overzichtelijker en beter beheersbaar.
Bovendien voorkomt het herhaling en maakt het de code herbruikbaar.
Syntaxis van functie
def function_name(parameters): """docstring""" statement(s)
Hierboven wordt een functiedefinitie weergegeven die uit de volgende componenten bestaat.
- Zoekwoord
def
die het begin van de functiekop markeert. - Een functienaam om de functie uniek te identificeren. Functienaamgeving volgt dezelfde regels voor het schrijven van identifiers in Python.
- Parameters (argumenten) waarmee we waarden doorgeven aan een functie. Ze zijn optioneel.
- Een dubbele punt (:) om het einde van de functiekop te markeren.
- Optionele documentatiestring (docstring) om te beschrijven wat de functie doet.
- Een of meer geldige python-instructies die de hoofdtekst van de functie vormen. Uitspraken moeten hetzelfde inspringniveau hebben (meestal 4 spaties).
- Een optionele
return
statement om een waarde van de functie te retourneren.
Voorbeeld van een functie
def greet(name):
"""
This function greets to
the person passed in as
a parameter
"""
print("Hello, " + name + ". Good morning!")
Hoe een functie in python aanroepen?
Zodra we een functie hebben gedefinieerd, kunnen we deze aanroepen vanuit een andere functie, programma of zelfs de Python-prompt. Om een functie aan te roepen, typen we gewoon de functienaam met de juiste parameters.
>>> greet('Paul')
Hello, Paul. Good morning!
Probeer de bovenstaande code uit te voeren in het Python-programma met de functiedefinitie om de uitvoer te zien.
def greet(name):
"""
This function greets to
the person passed in as
a parameter
"""
print("Hello, " + name + ". Good morning!")
greet('Paul')
Opmerking :In python moet de functiedefinitie altijd aanwezig zijn vóór de functieaanroep. Anders krijgen we een foutmelding. Bijvoorbeeld,
# function call
greet('Paul')
# function definition
def greet(name):
"""
This function greets to
the person passed in as
a parameter
"""
print("Hello, " + name + ". Good morning!")
# Erro: name 'greet' is not defined
Docstrings
De eerste tekenreeks na de functiekop wordt de docstring genoemd en is een afkorting voor documentatietekenreeks. Het wordt kort gebruikt om uit te leggen wat een functie doet.
Hoewel optioneel, is documentatie een goede programmeerpraktijk. Documenteer altijd uw code, tenzij u zich kunt herinneren wat u vorige week heeft gegeten.
In het bovenstaande voorbeeld hebben we een docstring direct onder de functiekop. We gebruiken over het algemeen drievoudige aanhalingstekens, zodat docstring tot meerdere regels kan worden uitgebreid. Deze string is voor ons beschikbaar als de __doc__
attribuut van de functie.
Bijvoorbeeld :
Probeer het volgende in de Python-shell uit te voeren om de uitvoer te zien.
>>> print(greet.__doc__)
This function greets to
the person passed in as
a parameter
Ga voor meer informatie over docstrings in Python naar Python Docstrings.
De return-instructie
De return
statement wordt gebruikt om een functie af te sluiten en terug te gaan naar de plaats waar deze werd aangeroepen.
Syntax van retour
return [expression_list]
Deze instructie kan een expressie bevatten die wordt geëvalueerd en de waarde wordt geretourneerd. Als er geen uitdrukking in de instructie of de return
statement zelf niet aanwezig is in een functie, dan retourneert de functie de None
voorwerp.
Bijvoorbeeld:
>>> print(greet("May"))
Hello, May. Good morning!
None
Hier, None
is de geretourneerde waarde sinds greet()
drukt direct de naam af en geen return
verklaring wordt gebruikt.
Voorbeeld van retour
def absolute_value(num):
"""This function returns the absolute
value of the entered number"""
if num >= 0:
return num
else:
return -num
print(absolute_value(2))
print(absolute_value(-4))
Uitvoer
2 4
Hoe werkt de functie in Python?
Omvang en levensduur van variabelen
Scope van een variabele is het gedeelte van een programma waar de variabele wordt herkend. Parameters en variabelen die binnen een functie zijn gedefinieerd, zijn niet zichtbaar van buiten de functie. Daarom hebben ze een lokaal bereik.
De levensduur van een variabele is de periode gedurende welke de variabele in het geheugen aanwezig is. De levensduur van variabelen binnen een functie is zo lang als de functie wordt uitgevoerd.
Ze worden vernietigd zodra we terugkeren van de functie. Daarom onthoudt een functie de waarde van een variabele van zijn eerdere aanroepen niet.
Hier is een voorbeeld om het bereik van een variabele binnen een functie te illustreren.
def my_func():
x = 10
print("Value inside function:",x)
x = 20
my_func()
print("Value outside function:",x)
Uitvoer
Value inside function: 10 Value outside function: 20
Hier kunnen we zien dat de waarde van x is in eerste instantie 20. Hoewel de functie my_func()
de waarde van x . gewijzigd tot 10, had het geen invloed op de waarde buiten de functie.
Dit komt omdat de variabele x binnen de functie is anders (lokaal voor de functie) dan die buiten. Hoewel ze dezelfde namen hebben, zijn het twee verschillende variabelen met een verschillend bereik.
Aan de andere kant zijn variabelen buiten de functie van binnenuit zichtbaar. Ze hebben een wereldwijde reikwijdte.
We kunnen deze waarden van binnenuit de functie lezen, maar kunnen ze niet veranderen (schrijven). Om de waarde van variabelen buiten de functie te wijzigen, moeten ze worden gedeclareerd als globale variabelen met het trefwoord global
.
Soorten functies
In principe kunnen we functies onderverdelen in de volgende twee typen:
- Ingebouwde functies - Functies die in Python zijn ingebouwd.
- Door de gebruiker gedefinieerde functies - Functies gedefinieerd door de gebruikers zelf.
Python
- Python-operators
- Python-functieargumenten
- Python Anonieme/Lambda-functie
- Python-woordenboek
- Python-generatoren
- Python-sluitingen
- Python-decorateurs
- 10 populaire functies in Stratasys Insight
- Python String strip() Functie met VOORBEELD
- Python Lambda-functies met VOORBEELDEN
- Python round() functie met VOORBEELDEN