En Python, si j'ai une fonction enfant dans une fonction parent, la fonction enfant est-elle "initialisée" (créée) chaque fois que la fonction parent est appelée ? L'imbrication d'une fonction dans une autre entraîne-t-elle une surcharge de performances ?
Réponse
Trop de publicités?
RFV5s
Points
378
Oui. Cela permet d'utiliser les fermetures, ainsi que les fabriques de fonctions.
Une fermeture permet à la fonction interne de se souvenir de l'état de son environnement lorsqu'elle est appelée.
def generate_power(number):
# Define the inner function ...
def nth_power(power):
return number ** power
return nth_power
Exemple
>>> raise_two = generate_power(2)
>>> raise_three = generate_power(3)
>>> print(raise_two(3))
8
>>> print(raise_three(5))
243
"""
- Réponses précédentes
- Plus de réponses