In Python zijn functies de basisbouwstenen die de herbruikbaarheid van code vergroten en het programma modulair maken. Dankzij functies kunt u dezelfde code niet steeds opnieuw schrijven, maar deze eenmalig definiëren en op meerdere plaatsen aanroepen. In dit artikel onderzoeken we het basisgebruik van Python-functies, parametertypes, return-statements en anonieme functies genaamd lambda-uitdrukkingen in detail.
Functie Definiëren en Aanroepen
Functies worden gedefinieerd met het sleutelwoord def:
def groet(naam):
print(f"Hallo, {naam}!")
# Aanroepen
groet("Ahmet") # Uitvoer: Hallo, Ahmet!
Functie zonder parameters:
def welkom():
return "Welkom!"
print(welkom()) # Uitvoer: Welkom!
Parametertypes
Python biedt flexibele ondersteuning voor parameters:
Positionele Parameters
def optellen(a, b):
return a + b
print(optellen(5, 3)) # 8
Standaard (Default) Parameters
def groet(naam="Gast"):
print(f"Hallo, {naam}!")
groet() # Hallo, Gast!
groet("Ayşe") # Hallo, Ayşe!
Sleutelwoord (Keyword) Parameters
def stel_voor(naam, leeftijd, stad):
print(f" {naam}, {leeftijd} jaar oud, woont in {stad}.")
stel_voor(stad="Istanbul", leeftijd=30, naam="Mehmet")
Variabel Aantal Parameters
• *args: Niet-geordend variabel aantal parameters
• **kwargs: In de vorm van sleutel-waardeparen
def som(*getallen):
return sum(getallen)
print(som(1, 2, 3, 4, 5)) # 15
def info(**kwargs):
for sleutel, waarde in kwargs.items():
print(f" {sleutel}: {waarde}")
info(naam="Ali", leeftijd=25, beroep="Ingenieur")
Return Statement
Functies gebruiken return om waarden terug te geven. Als er geen return is, wordt None teruggegeven.
def kwadraat(getal):
return getal ** 2
resultaat = kwadraat(4)
print(resultaat) # 16
Meerdere waarden teruggeven (als tuple):
def deling_operatie(a, b):
quotiënt = a // b
rest = a % b
return quotiënt, rest
quotiënt, rest = deling_operatie(10, 3)
print(quotiënt, rest) # 3 1
Lambda-uitdrukkingen (Anonieme Functies)
Worden gebruikt voor korte, eenregelige functies. Vaak gebruikt in combinatie met functies zoals map(), filter(), sorted().
Basis syntaxis:
lambda parameters: expressie
Voorbeeld:
kwadraat = lambda x: x ** 2
print(kwadraat(5)) # 25
# Lijstelementen verdubbelen
getallen = [1, 2, 3, 4]
verdubbeld = list(map(lambda x: x * 2, getallen))
print(verdubbeld) # [2, 4, 6, 8]
# Even getallen filteren
even = list(filter(lambda x: x % 2 == 0, getallen))
print(even) # [2, 4]
Sorteervoorbeeld:
studenten = [("Ahmet", 85), ("Ayşe", 92), ("Mehmet", 78)]
gesorteerd = sorted(studenten, key=lambda student: student[1], reverse=True)
print(gesorteerd) # [('Ayşe', 92), ('Ahmet', 85), ('Mehmet', 78)]
Beste Praktijken
• Schrijf functienamen in kleine letters met underscores (bereken_som).
• Functies moeten één taak uitvoeren (Single Responsibility).
• Voeg docstrings toe:
def optellen(a, b):
"""
Telt twee getallen op en geeft het resultaat terug.
Args:
a (int/float): Eerste getal
b (int/float): Tweede getal
Returns:
int/float: Som
"""
return a + b
• Scheid functies in modules voor grote projecten.
Conclusie
Python-functies en lambda-uitdrukkingen zijn de sleutel tot het schrijven van schone en effectieve code.
Begin met eenvoudige functies, en gebruik geleidelijk geavanceerde functies zoals *args, **kwargs en lambda. Probeer voor oefening een rekenmachine-applicatie te schrijven!
Ik wacht op je vragen in de comments.