Wie erstelle ich Funktionen höherer Ordnung in Python?

PHPz
Freigeben: 2023-09-05 19:29:05
nach vorne
1278 Leute haben es durchsucht

Wie erstelle ich Funktionen höherer Ordnung in Python?

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 −

Funktion als Objekt

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

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'))
Nach dem Login kopieren

Ausgabe

tHISISIT!
hELLO
Nach dem Login kopieren

Funktion als Parameter übergeben

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

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)
Nach dem Login kopieren

Ausgabe

tHIS IS IT!
This is it!
Nach dem Login kopieren

Lassen Sie uns nun über Dekorateure sprechen. Wir können Dekoratoren als Funktionen höherer Ordnung verwenden.

Dekorateure in Python

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

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.")
Nach dem Login kopieren

Das Obige kann auch als -

geschrieben werden
def demo_decorator():
   print("This is sample text.")
hello_decorator = mydecorator (demo_decorator)
Nach dem Login kopieren

Dekorationsbeispiel

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

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)
Nach dem Login kopieren
Nach dem Login kopieren

Ausgabe

Sum = 30
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

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)
Nach dem Login kopieren
Nach dem Login kopieren

Ausgabe

Sum = 30
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Syntax-Dekorator anwenden

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

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)
Nach dem Login kopieren

Ausgabe

Sum = 30
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage