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
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()函数定义的代码
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])
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
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>
Le résultat est calculé lorsque la fonction renvoyée est appelée
>>>f()10
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()
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!