Maison > développement back-end > Tutoriel Python > python prend en charge l'analyse des instances des fonctions de retour

python prend en charge l'analyse des instances des fonctions de retour

零到壹度
Libérer: 2018-04-03 10:47:05
original
1714 Les gens l'ont consulté

Cet article présente principalement l'analyse d'exemples de fonctions de retour supportées par python. L'éditeur pense que c'est plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un coup d'œil.

Je suis récemment entré en contact avec python et j'ai vu le concept de retour de fonctions en python. Je n'ai été exposé qu'à des valeurs de retour de fonction auparavant. , python peut renvoyer int, str, list, dict En attendant les données de type, ce que je veux dire ici, c'est que Python prend également en charge les fonctions de retour.

Regardez d'abord la syntaxe de base de Python qui prend en charge le renvoi des fonctions

def f():
    print 'call f()...'
    # 定义函数g:
    def g():
        print 'call g()...'
    # 返回函数g:
    return g
Copier après la connexion

Ici, la fonction la plus externe f renverra une fonction g, qui est la fonction g elle-même
Regardez ; ci-dessous Regardez le processus d'appel de la fonction ; (suite d'en haut)

>>> x = f()   # 调用f()call f()...>>> x   # 变量x就是上面一个最外层函数返回的函数(不是函数值)<function g at 0x1037bf320>
>>> x()   # x指向函数,因此可以调用,这里就是调用内层函数x()的过程call g()...   # 调用x()就是执行g()函数定义的代码
Copier après la connexion
  • Renvoie uniquement la fonction :
    La fonction renvoyée peut retarder l'exécution de certains calculs. Par exemple, si vous définissez une fonction somme normale :

def calc_sum(lst):
    return sum(lst)
>>>calc_sum([1,2,3,4])
Copier après la connexion

le résultat est directement : 10

Cependant, vous pouvez écrire du code en renvoyant des idées de fonctions, vous can " Calcul différé"

def calc_sum(lst):
    def lazy_sum():
        return sum(lst)    return lazy_sum
Copier après la connexion

Ce qui suit est l'appel :
Notez que le code suivant n'exécute pas la fonction pour calculer le résultat, mais renvoie la fonction.

>>> f = calc_sum([1, 2, 3, 4])
>>> f
<function lazy_sum at 0x1037bfaa0>
Copier après la connexion

Le résultat est calculé lorsque la fonction renvoyée est appelée

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

Ce qui suit est un exemple :
Veuillez écrire une fonction calc_prod(lst), qui reçoit une liste , renvoie une fonction qui peut calculer le produit des paramètres.
Idée : définissez d'abord une fonction qui peut calculer le produit, puis renvoyez cette fonction.

def calc_prod(lst):
    def lazy_prod():
        def f(x,y):
            return x*y        
        return  reduce(f,lst,1)    
return lazy_prod

f = calc_prod([1, 2, 3, 4])
print f()
Copier après la connexion

                                                                                                                                                                           

fonction de retour Python/programmation de fonctions

S plusieurs situations concernant les valeurs de retour de fonction

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