In Python wird eine Funktion, die eine andere Funktion als Argument verwendet oder eine Funktion als Ausgabe zurückgibt, als Funktion höherer Ordnung bezeichnet. Werfen wir einen Blick auf seine Funktionen -
Diese Funktion kann in einer Variablen gespeichert werden.
Diese Funktion kann als Parameter an eine andere Funktion übergeben werden.
Funktionen höherer Ordnung können in Listen, Hash-Tabellen usw. gespeichert werden.
Funktionen können von Funktionen zurückgegeben werden.
Schauen wir uns einige Beispiele an −
In diesem Beispiel werden diese Funktionen als Objekte behandelt. Hier wird die Funktion demo() einer Variablen zugewiesen -
# Creating a function def demo(mystr): return mystr.swapcase() # swapping the case print(demo('Thisisit!')) sample = demo print(sample('Hello'))
tHISISIT! hELLO
In dieser Funktion als Parameter übergeben. Die Funktion demo3() ruft die Funktionen demo() und demo2() als Parameter auf.
def demo(text): return text.swapcase() def demo2(text): return text.capitalize() def demo3(func): res = func("This is it!") # Function passed as an argument print (res) # Calling demo3(demo) demo3(demo2)
tHIS IS IT! This is it!
Lassen Sie uns nun über Dekorateure sprechen. Wir können Dekoratoren als Funktionen höherer Ordnung verwenden.
In einem Dekorator wird eine Funktion als Parameter an eine andere Funktion übergeben und dann in der Wrapper-Funktion aufgerufen. Schauen wir uns ein kurzes Beispiel an −
@mydecorator def hello_decorator(): print("This is sample text.")
Das Obige kann auch als -
geschrieben werdendef demo_decorator(): print("This is sample text.") hello_decorator = mydecorator (demo_decorator)
In diesem Beispiel werden wir mit Dekoratoren als Funktionen höherer Ordnung arbeiten -
def demoFunc(x,y): print("Sum = ",x+y) # outer function def outerFunc(sample): def innerFunc(x,y): # inner function return sample(x,y) return innerFunc # calling demoFunc2 = outerFunc(demoFunc) demoFunc2(10, 20)
Sum = 30
def demoFunc(x,y): print("Sum = ",x+y) # outer function def outerFunc(sample): def innerFunc(x,y): # inner function return sample(x,y) return innerFunc # calling demoFunc2 = outerFunc(demoFunc) demoFunc2(10, 20)
Sum = 30
Das obige Beispiel kann mit einem Decorator mit @-Symbol vereinfacht werden. Die Anwendung von Dekoratoren kann vereinfacht werden, indem das @-Symbol vor der Funktion platziert wird, die wir dekorieren möchten -
# outer function def outerFunc(sample): def innerFunc(x,y): # inner function return sample(x,y) return innerFunc @outerFunc def demoFunc(x,y): print("Sum = ",x+y) demoFunc(10,20)
Sum = 30
Das obige ist der detaillierte Inhalt vonWie erstelle ich Funktionen höherer Ordnung in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!