0Pricing
Python Academy · Lektion

Dekoratoren

Lernen Sie, wie Sie Dekoratoren verwenden, um Funktionen zu verändern oder zu erweitern.

Dekoratoren ist eine kostenlose Python Academy-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 Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 5 Lektionen.

Einführung in Dekoratoren

Einführung in Dekoratoren

Dekoratoren sind eine leistungsstarke Funktion von Python, mit der 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 Dekoratoren sind, wie Sie sie verwenden und wie Sie eigene Dekoratoren erstellen.

Dekoratoren — Illustration 1

Was ist ein Dekorator?

Was ist ein Dekorator?

Ein Dekorator 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()

Funktionsweise von Dekoratoren

Funktionsweise von Dekoratoren

Wenn Sie einen Dekorator verwenden, ersetzt Python die ursprüngliche Funktion durch die vom Dekorator 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()

Dekoratoren mit Argumenten verwenden

Dekoratoren mit Argumenten verwenden

Dekoratoren können mit Funktionen arbeiten, die Argumente entgegennehmen, 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 Dekoratoren verketten

Mehrere Dekoratoren verketten

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

# 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 Dekoratoren erstellen

Parametrisierte Dekoratoren erstellen

Parametrisierte Dekoratoren 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 Dekoratoren

Häufige Anwendungsfälle für Dekoratoren

Dekoratoren werden häufig für Folgendes verwendet:

  • Funktionsaufrufe und ihre Argumente zu protokollieren.
  • Die Ausführungszeit von Funktionen zu messen.
  • Die Zugriffskontrolle zu realisieren (z. B. durch das Prüfen von Benutzerberechtigungen).
  • Ergebnisse zur Verbesserung der Leistung zwischenzuspeichern.

In Python integrierte Dekoratoren

In Python integrierte Dekoratoren

Python stellt einige integrierte Dekoratoren bereit, darunter:

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

Häufige Fehler bei Dekoratoren

Häufige Fehler bei Dekoratoren

Hier sind einige Fehler, die Sie vermeiden sollten:

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

Was haben Sie gelernt?

Was haben Sie gelernt?

In dieser Lektion haben Sie Folgendes gelernt:

  • Was Dekoratoren sind und wie sie in Python funktionieren.
  • Wie Sie einfache, parametrisierte und verkettete Dekoratoren erstellen und verwenden.
  • Häufige Anwendungsfälle und integrierte Dekoratoren in Python.

Sehr gut! Fahren Sie 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 Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 5 Lektionen.

Was lerne ich in „Dekoratoren“?

Lernen Sie, wie Sie Dekoratoren verwenden, um Funktionen zu verändern oder zu erweitern. Du übst Python Academy 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 Academy zu starten?

Keine Vorkenntnisse erforderlich. Python Academy 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 Academy-Lektion Code schreiben und ausführen?

Ja. Jede Python Academy-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. Kontextmanager (with-Anweisungen)
  4. Comprehensions (für Listen, Mengen und Wörterbücher)
  5. Iteratoren und Iterables
← Zurück zu Python Academy