Definition: Dekorateur ist ein Designmuster in Python. Es handelt sich um eine Funktion, die eine andere Funktion als Argument nimmt, eine Funktionalität hinzufügt, ohne sie zu ändern, und gibt eine andere Funktion zurück.
Dies wird mit „(@)“ bezeichnet und vor dem Definieren einer Funktion platziert, die wir dekorieren möchten.
Syntax:
@Decorator Name
Funktionsdefinition
Für das Verständnis der Dekorateure müssen wir die folgenden Konzepte kennenlernen.
Funktionen sind erstklassige Objekte. Dies bedeutet, dass eine Funktion als Argument übergeben werden kann, kann von einer anderen Funktion zurückgegeben, einer Variablen zugeordnet werden, kann in einer anderen Funktion definiert werden. Für ein besseres Verständnis finden Sie die folgenden Beispiele.
Hier übergebene Inkrementfunktion als Argument
Beispiel 1.PY:
Ausgang:
>> Python Beispiel1.py
Beispiel2.PY:
Ausgang:
>> Python Beispiel2.py
Hier kehrte Say_Wish -Funktion aus der Wunschfunktion zurück
Beispiel3.PY:
Ausgang:
>> Python Beispiel3.py
Beispiel4.PY:
Ausgang:
>> Python Beispiel4.py
Schließung:
Python ermöglicht es einer verschachtelten Funktion, auf den äußeren Umfang der beigefügten Funktion zuzugreifen.
Def Greeting (Nachricht):Beispiel5.PY:
Ausgang:
>> Python Beispiel5.py
Nachdem wir jetzt die oben genannten Konzepte verstanden haben, werden wir einen Dekorationsbeispiel schreiben.
EX1: Hier dekorieren wir die Nachrichtenfunktion. Drucken der MSG in **** ohne die ursprüngliche Funktion zu modifizieren, i, ich.e., Nachrichtenfunktion.
#Decorator StartBeispiel6.PY:
Ausgang:
>> Python Beispiel6.py
In der einfachsten Form können wir Dekorateur über die Funktionsdefinition platzieren und die unten gezeigte Funktion aufrufen:
Hier, welche Saite wir in *** dekorieren möchten, verwenden Sie diesen Dekorateur.
Ausgang:
Multiple Dekorateur:
Wir können mehrere Dekorateure für eine einzelne Funktion haben. Hier wird der Dekorateur in der Reihenfolge aufgetragen, die wir angerufen haben.
Syntax:
@Decorator2
@Decorator1
Funktionsdefinition
Hier wird der 1. Dekorateur angewendet, dann der 2. Dekorateur.
Übergeben von Argumenten an Dekorationsfunktionen:
Wir können Argumente an die Wrapper -Funktion weitergeben. Die Argumente übergeben an die Funktion, für die wir dekorieren wollen.
Ex:
Def deco_wish (Funktion):Beispiel7.PY:
Ausgang:
>> Python Beispiel7.py
Übergeben Sie die variable Anzahl von Argumenten an die Dekorationsfunktion:
Wir können eine beliebige Anzahl von Argumenten mit *args (Nicht-Keyword-Argumente wie Zahlen) und ** KWARGS (Keyword-Argumente wie ein Wörterbuch) übergeben. Beide sind Positionsargumente und speichern die Argumente in Argumenten und KWARGS -Variablen.
Hinweis: Hier können wir einen beliebigen Namen anstelle von Args und KWARGs verwenden, aber diese Namen werden empfohlen, um sie zu verwenden.
Ex:
DEF DEC_VAR_ARGS (FUNKTIONISION):Beispiel8.PY:
Ausgang:
>> Python Beispiel8.py
EX2: Angenommen, wir haben 2 Funktionen
Funktion1: Berechnen Sie die Summe der Zahlen aus der angegebenen Liste
Funktion2: Multiplizieren Sie jede Zahl mit 2 und fügen Sie sie der angegebenen Liste der Zahlen hinzu
Wenn wir die von jeweils für die Ausführung dauernde Zeit berechnen wollen, kann dies auf 2 Arten tun
Siehe unten mit Dekorateur gelöste Code:
#Decorator StartBeispiel9.PY:
Ausgang:
>> Python Beispiel9.py
Der obige Dekorateur kann zur Berechnung der Ausführungszeit für eine der Funktionen verwendet werden. Durch die Verwendung eines Dekorateur können wir wiederholten Code vermeiden, wenn wir die Ausführungszeit berechnen, um den Dekorateur über die Funktionsdefinition zu legen.
Abschluss:
Dekorateure ändern die Funktionalität einer Funktion/Methode, ohne den ursprünglichen Code der Funktion zu ändern, wird dekoriert. Mit diesem Fall können wir vermeiden, wiederholten Code zu schreiben. Wenn wir das Konzept des Dekorationskonzepts in Python stark machen. Wir können Dekorateur in den folgenden Fällen verwenden: