0Pricing
Python For Kids · Lektion

Dekoratoren

Lernen Sie, wie Sie Funktionen mit Dekoratoren ändern oder erweitern.

Dekoratoren ist eine kostenlose Python For Kids-Lektion auf CoddyKit. Dies ist Lektion 1 von 5. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python For Kids-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python For Kids-Kurs umfasst insgesamt 5 Lektionen.

Einführung in Decorators

Decorators sind ein leistungsfähiges Feature in Python, mit dem Sie das Verhalten von Funktionen oder Methoden ändern können. Sie werden häufig verwendet, um Funktionen zusätzliche Funktionalität hinzuzufügen, ohne deren Code zu ändern.

In dieser Lektion lernen Sie, was Decorators sind, wie Sie sie verwenden und wie Sie eigene Decorators erstellen.

Dekoratoren — Illustration 1

Was ist ein Decorator?

Ein Decorator ist eine Funktion, die eine andere Funktion als Eingabe übernimmt und eine neue Funktion mit zusätzlicher Funktionalität zurückgibt. Er wird häufig mit der Syntax @decorator_name verwendet.

# 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()

So funktionieren Decorators

Wenn Sie einen Decorator verwenden, ersetzt Python die ursprüngliche Funktion durch die vom Decorator zurückgegebene Wrapper-Funktion.

# 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 mit Argumenten verwenden

Decorators können mit Funktionen arbeiten, die Argumente übernehmen, indem Sie *args und **kwargs in der Wrapper-Funktion verwenden:

# 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))

Mehrere Decorators verketten

Sie können mehrere Decorators auf eine einzelne Funktion anwenden. Sie werden in der Reihenfolge angewendet, in der sie von oben nach unten erscheinen:

# 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()

Parametrisierte Decorators erstellen

Parametrisierte Decorators akzeptieren Argumente und ermöglichen eine flexiblere Funktionalität:

# 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()

Häufige Anwendungsfälle für Decorators

Decorators werden häufig verwendet für:

  • Das Protokollieren von Funktionsaufrufen und deren Argumenten.
  • Das Messen der Ausführungszeit von Funktionen.
  • Die Zugriffskontrolle, zum Beispiel zum Prüfen von Benutzerberechtigungen.
  • Das Zwischenspeichern von Ergebnissen zur Verbesserung der Leistung.

Integrierte Decorators in Python

Python stellt einige integrierte Decorators bereit, darunter:

  • @staticmethod: Definiert eine statische Methode.
  • @classmethod: Definiert eine Klassenmethode.
  • @property: Definiert eine Property-Methode.

Häufige Fehler bei Decorators

Hier sind einige Fehler, die Sie vermeiden sollten:

  • Den Namen und den Docstring der ursprünglichen Funktion nicht beibehalten (verwenden Sie functools.wraps).
  • Decorators für einfache Aufgaben unnötigerweise verwenden.
  • Vergessen, Argumente in der Wrapper-Funktion zu verarbeiten.

Was haben Sie gelernt?

In dieser Lektion haben Sie Folgendes gelernt:

  • Was Decorators sind und wie sie in Python funktionieren.
  • Wie Sie einfache, parametrisierte und verkettete Decorators erstellen und verwenden.
  • Übliche Anwendungsfälle und integrierte Decorators in Python.

Sehr gut! Fahren wir mit dem nächsten Thema fort.

Dekoratoren — Illustration 11

Häufig gestellte Fragen

Ist die Lektion „Dekoratoren“ kostenlos?

Ja — der vollständige Text von „Dekoratoren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python For Kids-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python For Kids-Kurs umfasst insgesamt 5 Lektionen.

Was lerne ich in „Dekoratoren“?

Lernen Sie, wie Sie Funktionen mit Dekoratoren ändern oder erweitern. Du übst Python For Kids mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Python For Kids zu starten?

Keine Vorkenntnisse erforderlich. Python For Kids auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 5.

Wie lange dauert die Lektion „Dekoratoren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Python For Kids-Lektion Code schreiben und ausführen?

Ja. Jede Python For Kids-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Dekoratoren
  2. Generatoren
  3. Context Manager (with-Anweisungen)
  4. Comprehensions (Listen, Sets und Dictionaries)
  5. Iteratoren und Iterables
← Zurück zu Python For Kids