82 votes

L'imbrication de fonctions en Python entraîne-t-elle une surcharge ?

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 ?

1voto

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
"""

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X