Einführung in Dekoratoren
Lassen Sie uns über Dekoratoren sprechen.
Beachten Sie, dass decorators
ein herausforderndes Thema für Anfänger sein können. Wir werden Dekoratoren im Detail untersuchen, Schritt für Schritt, und erklären, wie sie funktionieren. Es könnte anfangs schwierig sein, sie zu verstehen. Sind Sie bereit, diese Herausforderungen anzugehen? Deshalb sind Sie hier!
Decorators
sind Funktionen, die einer anderen Funktion zusätzliche Funktionalität hinzufügen, indem sie Closures nutzen. Hier ist ein Beispiel, wie ein Dekorator funktioniert:
123456789101112131415161718192021def decorator(func): def wrapper(argument1, argument2): print("Function starts executing") result = func(argument1, argument2) print("Function ends executing") return result return wrapper def add(a, b): print(f"Function add: {a} + {b}") return a + b add = decorator(add) print(add(14, 12)) print(add(11, 28)) print(add(33, 16))
In diesem Beispiel nimmt die Funktion decorator()
eine andere Funktion als Argument, definiert eine wrapper()
-Funktion, umschließt die gegebene Funktion innerhalb von wrapper()
und gibt wrapper()
zurück. Es gibt drei Schritte im Betrieb eines Dekorators:
- Eine Funktion als Argument nehmen.
- Diese Funktion innerhalb einer neu definierten Funktion (Wrapper) umschließen.
- Die Wrapper-Funktion zurückgeben, die nun die ursprüngliche Funktion umschließt.
Die wrapper()
-Funktion enthält die Hauptlogik des Dekorators und ruft die Funktion mit den gegebenen Parametern auf. Die add()
-Funktion wird durch die von wrapper()
zurückgegebene decorator()
-Funktion neu zugewiesen, die nun die eingeschlossene add()
-Funktion enthält.
- Der Python-Interpreter liest und definiert zuerst die Dekoratorfunktion. Er führt zu diesem Zeitpunkt keinen Code innerhalb des Dekorators aus; er merkt sich nur, dass es eine Funktion namens Dekorator gibt.
- Als nächstes wird die Funktion add definiert. Wie der Dekorator wird auch diese Funktion noch nicht ausgeführt, sondern nur definiert.
- Nach der Definition von add wird die nächste Zeile
add = decorator(add)
ausgeführt. Hier wird die Dekoratorfunktion zum ersten Mal aufgerufen. Sie erhält die Funktion add als Argument. Innerhalb desdecorator
wird derwrapper
definiert und dann zurückgegeben. Jetzt bezieht sichadd
nicht mehr auf die ursprünglicheadd
-Funktion, sondern auf diewrapper
-Funktion, die vomdecorator
zurückgegeben wird. - Wenn
add(14, 12)
ausgeführt wird, wird die wrapper-Funktion mit 14 und 12 aufgerufen.
- wrapper druckt "Funktion beginnt auszuführen"
- Ruft die ursprüngliche add-Funktion mit 14 und 12 auf, die "Funktion add: 14 + 12" druckt und 26 zurückgibt.
- Druckt "Funktion endet auszuführen".
wrapper
gibt 26 zurück, was von print(add(14, 12)) gedruckt wird.
Die nächsten Aufrufe wiederholen die vorherigen Schritte.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 3.7
Einführung in Dekoratoren
Swipe um das Menü anzuzeigen
Lassen Sie uns über Dekoratoren sprechen.
Beachten Sie, dass decorators
ein herausforderndes Thema für Anfänger sein können. Wir werden Dekoratoren im Detail untersuchen, Schritt für Schritt, und erklären, wie sie funktionieren. Es könnte anfangs schwierig sein, sie zu verstehen. Sind Sie bereit, diese Herausforderungen anzugehen? Deshalb sind Sie hier!
Decorators
sind Funktionen, die einer anderen Funktion zusätzliche Funktionalität hinzufügen, indem sie Closures nutzen. Hier ist ein Beispiel, wie ein Dekorator funktioniert:
123456789101112131415161718192021def decorator(func): def wrapper(argument1, argument2): print("Function starts executing") result = func(argument1, argument2) print("Function ends executing") return result return wrapper def add(a, b): print(f"Function add: {a} + {b}") return a + b add = decorator(add) print(add(14, 12)) print(add(11, 28)) print(add(33, 16))
In diesem Beispiel nimmt die Funktion decorator()
eine andere Funktion als Argument, definiert eine wrapper()
-Funktion, umschließt die gegebene Funktion innerhalb von wrapper()
und gibt wrapper()
zurück. Es gibt drei Schritte im Betrieb eines Dekorators:
- Eine Funktion als Argument nehmen.
- Diese Funktion innerhalb einer neu definierten Funktion (Wrapper) umschließen.
- Die Wrapper-Funktion zurückgeben, die nun die ursprüngliche Funktion umschließt.
Die wrapper()
-Funktion enthält die Hauptlogik des Dekorators und ruft die Funktion mit den gegebenen Parametern auf. Die add()
-Funktion wird durch die von wrapper()
zurückgegebene decorator()
-Funktion neu zugewiesen, die nun die eingeschlossene add()
-Funktion enthält.
- Der Python-Interpreter liest und definiert zuerst die Dekoratorfunktion. Er führt zu diesem Zeitpunkt keinen Code innerhalb des Dekorators aus; er merkt sich nur, dass es eine Funktion namens Dekorator gibt.
- Als nächstes wird die Funktion add definiert. Wie der Dekorator wird auch diese Funktion noch nicht ausgeführt, sondern nur definiert.
- Nach der Definition von add wird die nächste Zeile
add = decorator(add)
ausgeführt. Hier wird die Dekoratorfunktion zum ersten Mal aufgerufen. Sie erhält die Funktion add als Argument. Innerhalb desdecorator
wird derwrapper
definiert und dann zurückgegeben. Jetzt bezieht sichadd
nicht mehr auf die ursprünglicheadd
-Funktion, sondern auf diewrapper
-Funktion, die vomdecorator
zurückgegeben wird. - Wenn
add(14, 12)
ausgeführt wird, wird die wrapper-Funktion mit 14 und 12 aufgerufen.
- wrapper druckt "Funktion beginnt auszuführen"
- Ruft die ursprüngliche add-Funktion mit 14 und 12 auf, die "Funktion add: 14 + 12" druckt und 26 zurückgibt.
- Druckt "Funktion endet auszuführen".
wrapper
gibt 26 zurück, was von print(add(14, 12)) gedruckt wird.
Die nächsten Aufrufe wiederholen die vorherigen Schritte.
Danke für Ihr Feedback!