Junior — Middle
Heb je ervaring met het gebruik van decorateurs in je projecten?
sobes.tech AI
Antwoord van AI
Ja, in mijn projecten heb ik decorateurs gebruikt om de functionaliteit van functies en methoden uit te breiden zonder hun broncode te wijzigen. Bijvoorbeeld voor het loggen van functieaanroepen, het meten van de uitvoeringstijd of het controleren van toegangsrechten.
Voorbeeld van een eenvoudige decorateur voor logging:
def log_calls(func):
def wrapper(*args, **kwargs):
print(f"Oproep van functie {func.__name__} met argumenten {args} {kwargs}")
result = func(*args, **kwargs)
print(f"Functie {func.__name__} heeft {result} geretourneerd")
return result
return wrapper
@log_calls
def add(a, b):
return a + b
add(2, 3)
Decorateurs helpen om schonere en onderhoudbare code te schrijven, vooral bij testautomatisering, waar het vaak nodig is om herhaalde acties rond testfuncties toe te voegen.