Maison >développement back-end >Tutoriel Python >Comment créer des fonctions d'ordre supérieur en Python ?

Comment créer des fonctions d'ordre supérieur en Python ?

PHPz
PHPzavant
2023-09-05 19:29:051293parcourir

Comment créer des fonctions dordre supérieur en Python ?

En Python, une fonction qui prend une autre fonction comme argument ou renvoie une fonction en sortie est appelée une fonction d'ordre supérieur. Jetons un coup d'œil à ses fonctionnalités -

  • La fonction peut être stockée dans une variable.

  • Cette fonction peut être passée en paramètre à une autre fonction.

  • Les fonctions d'ordre supérieur peuvent être stockées dans des listes, des tables de hachage, etc.

  • Les fonctions peuvent être renvoyées par les fonctions.

Regardons quelques exemples −

Fonctionner comme objet

La traduction chinoise de

Exemple

est :

Exemple

Dans cet exemple, ces fonctions sont traitées comme des objets. Ici, la fonction demo() est affectée à une variable -

# Creating a function
def demo(mystr):
   return mystr.swapcase() # swapping the case

print(demo('Thisisit!'))
sample = demo
print(sample('Hello'))

Sortie

tHISISIT!
hELLO

Fonction Passer en paramètre

La traduction chinoise de

Exemple

est :

Exemple

Dans cette fonction passée en paramètre. La fonction demo3() appelle les fonctions demo() et demo2() comme paramètres.

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)

Sortie

tHIS IS IT!
This is it!

Parlons maintenant des décorateurs. Nous pouvons utiliser les décorateurs comme fonctions d’ordre supérieur.

Décorateurs en Python

La traduction chinoise de

Exemple

est :

Exemple

Dans un décorateur, une fonction est passée en paramètre à une autre fonction puis appelée dans la fonction wrapper. Regardons un exemple rapide −

@mydecorator
def hello_decorator():
   print("This is sample text.")

Ce qui précède peut également s'écrire -

def demo_decorator():
   print("This is sample text.")
hello_decorator = mydecorator (demo_decorator)

Exemple de décorateur

La traduction chinoise de

Exemple

est :

Exemple

Dans cet exemple, nous travaillerons avec les décorateurs en tant que fonctions d'ordre supérieur -

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)

Sortie

Sum = 30
La traduction chinoise de

Exemple

est :

Exemple

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)

Sortie

Sum = 30

Appliquer le décorateur de syntaxe

La traduction chinoise de

Exemple

est :

Exemple

L'exemple ci-dessus peut être simplifié en utilisant un décorateur avec @symbol. L'application des décorateurs peut être simplifiée en plaçant le symbole @ devant la fonction que l'on souhaite décorer -

# 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)

Sortie

Sum = 30

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer