Maison  >  Article  >  développement back-end  >  Qu'est-ce qu'une fonction de retour Python ? (Exemple d'analyse)

Qu'est-ce qu'une fonction de retour Python ? (Exemple d'analyse)

乌拉乌拉~
乌拉乌拉~original
2018-08-22 16:17:451708parcourir

Dans l'article suivant, nous découvrirons ce qu'est la fonction de retour en python. Découvrez les connaissances pertinentes sur la fonction de retour de Python. Eh bien, sans plus tarder, passons à l'article suivant.

Fonction Python comme valeur de retour :

En plus d'accepter des fonctions comme paramètres, les fonctions d'ordre supérieur peuvent également renvoyer des fonctions comme valeurs de résultat.

Implémentons la sommation d'un paramètre variable. Habituellement, la fonction de sommation est définie comme ceci :

def calc_sum(*args):
    ax = 0
    for n in args:
        ax = ax + n    return ax

Cependant, que se passe-t-il si la somme n'a pas besoin d'être calculée immédiatement, mais est calculée selon les besoins dans le code suivant ? Au lieu de renvoyer le résultat de la sommation, vous pouvez renvoyer la fonction de sommation :

def lazy_sum(*args):
    def sum():
        ax = 0
        for n in args:
            ax = ax + n        return ax    return sum

Lorsque nous appelons lazy_sum(), ce qui est renvoyé n'est pas le résultat de la sommation, mais la fonction de sommation :

>>> f = lazy_sum(1, 3, 5, 7, 9)
>>> f
<function lazy_sum.<locals>.sum at 0x101c6ed90>

Le résultat de la somme est effectivement calculé lorsque la fonction f est appelée :

>>> f()25

Dans cet exemple, nous définissons la fonction somme dans la fonction lazy_sum, et la fonction interne somme peut référencer les paramètres et variables locales de la fonction externe lazy_sum. Lorsque lazy_sum renvoie la fonction sum, les paramètres et variables pertinents sont enregistrés dans la fonction renvoyée. Cette structure de programme appelée "Closure" a une grande puissance.

Veuillez noter encore une chose, lorsque nous appelons lazy_sum(), chaque appel retournera une nouvelle fonction, même si les mêmes paramètres sont passés :

>>> f1 = lazy_sum(1, 3, 5, 7, 9)
>>> f2 = lazy_sum(1, 3, 5, 7, 9)
>>> f1==f2False

f1() et f2 Les résultats de l'appel de () ne s'influencent pas mutuellement.

Ce qui précède est tout le contenu de cet article. Cet article présente principalement les connaissances liées à la fonction de retour dans python. J'espère que ce que j'ai décrit dans cet article vous sera utile et vous facilitera l'apprentissage de Python.

Pour plus de connaissances connexes, veuillez visiter la colonne Tutoriel Python du site Web php chinois.

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn