Return a Function
Leçon 4 sur 12 du cours Les décorateurs Python de Coddy.
En Python, nous pouvons également renvoyer une fonction en tant que valeur de retour.
Par exemple,
def get_multiplier(n):
def multiplier(x):
return x * n
return multiplier
double = get_multiplier(2)
triple = get_multiplier(3)
print(double(5)) # Output: 10
print(triple(5)) # Output: 15Dans cet exemple, la fonction get_multiplier renvoie une nouvelle fonction appelée multiplier, qui prend un seul argument x et renvoie le produit de x et de l'argument n passé à get_multiplier.
Nous utilisons ensuite get_multiplier pour créer deux nouvelles fonctions : double (qui multiplie son entrée par 2) et triple (qui multiplie son entrée par 3).
Lorsque nous appelons ces fonctions avec un argument (tel que 5), elles utilisent la fonction multiplier renvoyée par get_multiplier pour calculer le résultat.
Ainsi, dans l'exemple ci-dessus, double(5) renvoie 10 (car 5 * 2 = 10), et triple(5) renvoie 15 (car 5 * 3 = 15).
Défi
FacileÉcrivez une fonction appelée function_builder qui prend deux entiers a et b en entrée et renvoie une nouvelle fonction.
La nouvelle fonction doit prendre un seul entier x en entrée et renvoyer la valeur de (a * x) + b.
Voici un exemple du fonctionnement de la fonction :
>>> my_func = function_builder(2, 3)
>>> my_func(5)
13
>>> function_builder(1, 2)(3)
5Essayez vous-même
Toutes les leçons de Les décorateurs Python
Entraînez-vous par vous-même : Compilateur Python en ligne