Sobes.tech
Middle

Welke taken hebt u opgelost met uw decorators in Python?

sobes.tech AI

Antwoord van AI

In Python gebruikte ik decorators om verschillende taken op te lossen die verband houden met het uitbreiden van de functionaliteit van functies zonder hun code te wijzigen. Bijvoorbeeld:

  • Logging van functieaanroepen — om automatisch invoerparameters en resultaten vast te leggen.
  • Caching van resultaten — om herhaalde aanroepen met dezelfde argumenten te optimaliseren.
  • Toegangscontrole — in webapplicaties om de toegang tot bepaalde functies te beperken.
  • Tijdmeting van uitvoering — voor profiling en optimalisatie van de code.

Voorbeeld van een eenvoudige decorator voor logging:

import functools

def log_calls(func):
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        print(f"Aanroep van {func.__name__} met args={args}, kwargs={kwargs}")
        result = func(*args, **kwargs)
        print(f"{func.__name__} gaf {result} terug")
        return result
    return wrapper

@log_calls
def add(a, b):
    return a + b

add(2, 3)

Deze aanpak helpt om schonere en onderhoudbare code te schrijven, door de hulplogica van de hoofdcode te scheiden.