Cet article partage avec vous une explication détaillée de l'utilisation des fonctions avancées de Python avec des exemples. Le contenu est assez bon. J'espère qu'il pourra aider les amis dans le besoin.
Problèmes de paramètres de fonction
Trois situations de base
fun(a,b)
fun(a,b) b est un objet itérable
fun(a,**b) b est un objet d'itération avec un type de récupération, à l'intérieur du corps de la fonction Lors de l'analyse, cela équivaut à un dictionnaire
ls = [i for i in range(10)] #print(ls) def fun1(a,*b): for i in b: print(a,i) #fun1(1,*ls) def fun2(name,age,**kw): print("name:",name,"age:",age,"other:",kw) fun2('fanhaitao','26',参数= 'random')
**kw参数把键值对转换成字典的形式
fonction anonyme
lambda
Il n'y a pas de valeur de retour, la valeur de retour est la valeur de l'expression
La fonction n'a pas de nom, pas besoin de s'inquiéter des conflits de noms
La fonction anonyme est également un objet fonction Vous pouvez également attribuer la fonction anonyme à une variable. et utilisez la variable pour appeler la fonction
fun3 = lambda x:x+1 print(fun3(99)) #100 fun4 = lambda x,y :x*x + y*y print(fun4(3,4)) #25
Decorator@
Cette façon d'ajouter dynamiquement des fonctionnalités tout en le code est en cours d'exécution est appelé un "décorateur" (Decorator)
Décorateur sans paramètres
#定义一个装饰器 def log(func): def wrapper(*args,**kw): print('call %s()' % func.__name__) return func(*args,**kw) return wrapper @log def now(): print('2018-3-29') now()
Relation logique interne du décorateur (ordre d'appel ): log() -> ; return wrapper() -> return func() -> 🎜> Fonction intégrée BiF
zip : combinez deux objets d'itération en un seul objet d'itération
#定义一个装饰器 def log(text): def decorator(func): def wrapper(*args,**kw): print('%s %s():' % (text,func.__name__)) return func(*args,**kw) return wrapper return decorator @log("可爱的参数") def now(): print('2018-3-29') now()
Remarque : les variables redondantes sans correspondance seront be Discard
enumerate : renvoie un objet itérable, composé d'une position + élément
a = [1,2,3] b = 'abcde' for i in zip(a,b): print(i) for i,j in zip(a,b): print("Index:",i,";Item:",j)
filter : fonction de filtre
for i,j in enumerate('abcde'): print(i,j)
Deux paramètres, le premier est un paramètre, le second est un objet itérable et la valeur renvoyée est également Objet itérable ; si l'objet itérable dans le paramètre est True dans la fonction, la valeur sera conservée, sinon pass
map
L'utilisation est similaire au filtre, avec les différences suivantes :
print(list(filter(lambda x:(x*x+x+2)%8 == 0,range(100))))
réduire
print(list(map(lambda x:x**2,range(5))))
Recommandations associées :
from functools import reduce add = lambda x,y:x+y ls = [i for i in range(101)] print(reduce(add,ls))
Fonctions avancées de Python
Collection de fonctions Python et syntaxe avancée
Utilisation avancée des fonctions Python
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!