Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Dekoratoren Verketten | Decorators
Fortgeschrittene Python-Techniken
course content

Kursinhalt

Fortgeschrittene Python-Techniken

Fortgeschrittene Python-Techniken

1. Packen und Entpacken
2. Argumente in Funktionen
3. Funktion als Argument
4. Variablenbereich
5. Decorators

book
Dekoratoren Verketten

Verkettung von Dekoratoren in Python ist eine leistungsstarke Funktion, die es Ihnen ermöglicht, mehrere Dekoratoren auf eine einzelne Funktion anzuwenden. Jeder Dekorator modifiziert oder verbessert die Funktion auf irgendeine Weise, und sie werden in einer bestimmten Reihenfolge angewendet. Hier ist ein praktisches Beispiel, um die Verkettung von Dekoratoren zu veranschaulichen:

Zwei einfache Dekoratoren

Zuerst definieren wir zwei einfache Dekoratoren:

Verkettung von Dekoratoren

Nun, lassen Sie uns diese Dekoratoren auf eine einzelne Funktion anwenden:

1234567891011121314151617181920
def decorator_one(func): def wrapper(): print("Decorator one start") func() print("Decorator one end") return wrapper def decorator_two(func): def wrapper(): print("Decorator two start") func() print("Decorator two end") return wrapper @decorator_one @decorator_two def greet(): print("Hello!") greet()
copy

In jedem Dekorator gibt es Code, der ausgeführt wird, bevor zum nächsten Dekorator übergegangen wird und nach Abschluss dieses Dekorators. Es funktioniert in einer geschichteten Weise. Sie werden in der Reihenfolge angewendet, in der sie aufgelistet sind, von oben nach unten. Die Ausgabe des oberen Dekorators wird zur Eingabe für den nächsten darunter. Diese Schichtung kann der ursprünglichen Funktion mehrere Funktionalitäten hinzufügen.

Ausführungsreihenfolge

Wenn greet() aufgerufen wird, ist die Ausführungsreihenfolge:

  1. Vom decorator_one wird der erste print ausgeführt;
  2. Innerhalb von decorator_one wird vom decorator_two der erste print ausgeführt;
  3. Schließlich wird die ursprüngliche greet-Funktion ausgeführt;
  4. Dann rückwärts gehen und die Ausführung des decorator_two durch Drucken der Nachricht beenden;
  5. Der gesamte Code wird abgeschlossen, indem die letzte print-Anweisung im decorator_one ausgeführt wird.

Die Ausgabe wird sein:

Dekoratoren verketten ist eine leistungsstarke Methode, um das Verhalten von Funktionen auf eine modulare und lesbare Weise zu erweitern.

Ich hoffe, die nächste Herausforderung hilft Ihnen, dieses Thema besser zu verstehen.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 5
We're sorry to hear that something went wrong. What happened?
some-alt