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

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

乌拉乌拉~
Libérer: 2018-08-22 16:17:45
original
1752 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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>
Copier après la connexion

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

>>> f()25
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal