Funktionsdekoratoren in Python | Set 1 (Einführung)
Im Folgenden finden Sie wichtige Fakten zu Funktionen in Python, die zum Verständnis der Dekorationsfunktionen hilfreich sind.
- In Python können wir eine Funktion innerhalb einer anderen Funktion definieren.
- In Python kann eine Funktion als Parameter an eine andere Funktion übergeben werden (eine Funktion kann auch eine andere Funktion zurückgeben).
def
messageWithWelcome(
str
):
def
addWelcome():
return
"Welcome to "
return
addWelcome()
+
str
def
site(site_name):
return
site_name
messageWithWelcome(site(
"GeeksforGeeks"
))
Ausgabe:
Willkommen bei GeeksforGeeks
Ein Dekorator ist eine Funktion, die eine Funktion als einzigen Parameter verwendet und eine Funktion zurückgibt. Dies ist hilfreich, um Funktionen immer wieder mit demselben Code zu "verpacken". Zum Beispiel kann der obige Code wie folgt neu geschrieben werden.
Wir verwenden @func_name, um einen Dekorator anzugeben, der auf eine andere Funktion angewendet werden soll.
def
decorate_message(fun):
def
addWelcome(site_name):
return
"Welcome to "
+
fun(site_name)
return
addWelcome
@decorate_message
def
site(site_name):
return
site_name;
site(
"GeeksforGeeks"
)
Ausgabe:
Willkommen bei GeeksforGeeks
Dekorateure können auch nützlich sein, um Funktionen mit Daten zu versehen (oder Attribute hinzuzufügen).
def
attach_data(func):
func.data
=
3
return
func
@attach_data
def
add (x, y):
return
x
+
y
(add(
2
,
3
))
(add.data)
Ausgabe:
5 3
'add()' gibt die Summe von x und y zurück, die als Argumente übergeben wurden, wird jedoch von einer Dekorationsfunktion umbrochen. Wenn Sie add (2, 3) aufrufen, erhalten Sie einfach die Summe von zwei Zahlen. Wenn wir jedoch add.data aufrufen, lautet die Funktion 'add' übergeben als Argument an die Dekoratorfunktion 'attach_data' und diese Funktion gibt die Funktion 'add' mit einem Attribut 'data' zurück, das auf 3 gesetzt ist, und druckt es daher aus.
Python-Dekoratoren sind ein leistungsstarkes Tool zum Entfernen von Redundanz.
Weitere Informationen finden Sie unter Dekorateure in Python .
Dieser Artikel wurde von Shwetanshu Rohatgi verfasst . Bitte schreiben Sie Kommentare, wenn Sie etwas Falsches finden oder weitere Informationen zu dem oben diskutierten Thema teilen möchten