Python For Kids · Les

Decorators

Leer hoe u decorators gebruikt om functies aan te passen of uit te breiden.

Les 1 van 511 stappen

Decorators is een gratis Python For Kids-les op CoddyKit. Dit is les 1 van 5. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Python For Kids. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Python For Kids bevat in totaal 5 lessen.

Inleiding tot decorators

Decorators zijn een krachtige functie in Python waarmee je het gedrag van functies of methoden kunt aanpassen. Ze worden vaak gebruikt om functionaliteit aan functies toe te voegen zonder hun code aan te passen.

In deze les leer je wat decorators zijn, hoe je ze gebruikt en hoe je je eigen decorators maakt.

Decorators — illustratie 1

Wat is een decorator?

Een decorator is een functie die een andere functie als invoer neemt en een nieuwe functie met extra functionaliteit retourneert. Je gebruikt deze vaak met de syntaxis @decorator_name.

# Basic example of a decorator
def decorator(func):
    def wrapper():
        print("Before the function call")
        func()
        print("After the function call")
    return wrapper

@decorator
def say_hello():
    print("Hello!")

say_hello()

Hoe decorators werken

Wanneer je een decorator gebruikt, vervangt Python de oorspronkelijke functie door de wrapperfunctie die door de decorator wordt geretourneerd.

# How decorators work
def decorator(func):
    def wrapper():
        print("Wrapper called")
        func()
    return wrapper

@decorator
def greet():
    print("Greetings!")

print(greet.__name__)  # Outputs: wrapper
greet()

Decorators met argumenten gebruiken

Decorators kunnen werken met functies die argumenten accepteren door *args en **kwargs in de wrapperfunctie te gebruiken:

# Decorator for functions with arguments
def decorator(func):
    def wrapper(*args, **kwargs):
        print(f"Arguments: {args}, {kwargs}")
        return func(*args, **kwargs)
    return wrapper

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

print(add(3, 5))

Meerdere decorators koppelen

Je kunt meerdere decorators op één functie gebruiken. Ze worden toegepast in de volgorde waarin ze verschijnen, van boven naar beneden:

# Chaining multiple decorators
def decorator1(func):
    def wrapper():
        print("Decorator 1")
        func()
    return wrapper

def decorator2(func):
    def wrapper():
        print("Decorator 2")
        func()
    return wrapper

@decorator1
@decorator2
def greet():
    print("Hello!")

greet()

Decorateurs met parameters maken

Decorateurs met parameters accepteren argumenten en maken flexibelere functionaliteit mogelijk:

# Parameterized decorator
def repeat(times):
    def decorator(func):
        def wrapper(*args, **kwargs):
            for _ in range(times):
                func(*args, **kwargs)
        return wrapper
    return decorator

@repeat(3)
def say_hello():
    print("Hello!")

say_hello()

Veelvoorkomende toepassingen van decorateurs

Decorateurs worden vaak gebruikt voor:

  • Het loggen van functieaanroepen en hun argumenten.
  • Het meten van de uitvoeringstijd van functies.
  • Toegangsbeheer, bijvoorbeeld het controleren van gebruikersrechten.
  • Het cachen van resultaten om de prestaties te verbeteren.

Ingebouwde decorateurs in Python

Python bevat enkele ingebouwde decorateurs, waaronder:

  • @staticmethod: definieert een statische methode.
  • @classmethod: definieert een klassemethode.
  • @property: definieert een eigenschapsmethode.

Veelgemaakte fouten met decorators

Hier zijn enkele fouten die je moet vermijden:

  • De naam en docstring van de oorspronkelijke functie niet behouden (gebruik functools.wraps).
  • Decorators onnodig gebruiken voor eenvoudige taken.
  • Vergeten om argumenten in de wrapperfunctie af te handelen.

Wat hebben we geleerd?

In deze les hebt u het volgende geleerd:

  • Wat decorators zijn en hoe ze werken in Python.
  • Hoe u eenvoudige, geparameteriseerde en gekoppelde decorators maakt en gebruikt.
  • Veelvoorkomende toepassingen en ingebouwde decorators in Python.

Goed gedaan! Laten we doorgaan naar het volgende onderwerp.

Decorators — illustratie 11
Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
22
Lessen
94

Veelgestelde vragen

Is de les “Decorators” gratis?

Ja — de volledige tekst van “Decorators” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Python For Kids wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Python For Kids bevat in totaal 5 lessen.

Wat leer ik in “Decorators”?

Leer hoe u decorators gebruikt om functies aan te passen of uit te breiden. Je oefent met Python For Kids door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Python For Kids te beginnen?

Ervaring vooraf is niet nodig. Python For Kids op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 5.

Hoe lang duurt de les “Decorators”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Python For Kids?

Ja. Elke les over Python For Kids bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Decorators
  2. Generators
  3. Contextmanagers (with-instructies)
  4. Comprehensions (lijst, set en dictionary)
  5. Iterators en iterables
← Terug naar Python For Kids