Sobes.tech
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.