1, l'argument introduction entre la forme
Paramètres: les paramètres définis à l'étape appelés paramètres formels fonction définie, appelée paramètre correspondant au nom de la variable
def func(x, y): # x=1,y=2
print(x, y)
Argument: la fonction d'appel entrant étape dite de la valeur du paramètre réel, appelé l'argument, ce qui équivaut à la valeur de la variable
func(1,2)
Les relations entre l'argument Forme:
1, la phase d'appel, l'argument (valeur variable) sera lié au paramètre (nom variable)
2, cette relation de liaison ne peut être utilisé dans le corps de la fonction
3, la participation effective du paramètre de relation de liaison deviennent efficaces lorsque l'appel de fonction après la fin de l'appel de fonction unbind
argument valeur est passée, mais la valeur peut être sous la forme
Une forme:
func(1,2) #传入的是变量值
Sous la forme de deux:
a=1
b=2
func(a,b) #传入的是已经定义的变量
Sous forme de trois:
func(int('1'),2) #输出1,2
func(func(1,2,),func(2,3)) #先运行参数的内容,因此先输出1,2和2,3,然后再运行外层函数输出None,None
2, le paramètre particulier de l'utilisation réelle et
2.1 Paramètres positions: une position dite du paramètre en fonction du paramètre défini en séquence de gauche à droite
paramètre Lieu: stade de la définition de la fonction, de gauche à droite, la définition directe de « nom de la variable »
Caractéristiques: doit être transférée valeur, pas un de plus, ni un de moins
def func(x,y):
print(x,y)
func(1,2,3)
func(1,)
argument Lieu: la fonction de phase d'appel, conformément à l'ordre et certains de la gauche à la valeur entrante
Caractéristiques: l'ordre d'un paramètre
func(1,2)
func(2,1)
2.2 Paramètres de mots-clés
argument de mot-clé: la phase d'appel de fonction, sous la forme de clé = valeur de la valeur passée en
Caractéristiques: par nom pour transmettre une valeur de paramètre, la séquence de référence peut être complètement
def func(x,y):
print(x,y)
func(y=2,x=1)
func(1,2)
Mélanger, mettant l'accent sur:
1) L'argument de position doit être placé avant que les paramètres réels de mots-clés
func(1,y=2)
func(y=2,1)
2) ne peut pas passer peut être répétée pour la même valeur du paramètre
func(1,y=2,x=3)
func(1,2,x=3,y=4)
2.3 Paramètres par défaut
paramètre par défaut: phase de définition de fonction, a été attribué un paramètre, appelé les paramètres par défaut
Caractéristiques: Au cours de la phase de définition a déjà été attribué, ce qui signifie que l'appel ne peut pas attribuer une valeur à l'étape
def func(x,y=3):
print(x,y)
# func(x=1)
func(x=1,y=44444)
def register(name,age,gender='男'):
print(name,age,gender)
register('三炮',18)
register('二炮',19)
register('大炮',19)
register('没炮',19,'女')
Lieu forme de mélange participer paramètres par défaut, mettant l'accent sur:
1) le paramètre de position doit être laissée dans le paramètre par défaut
def func(y=2,x):
pass
2) La valeur par défaut du paramètre est affectée à la phase de définition de la fonction, il est donné précisément la valeur de l'adresse mémoire du
modèle 1:
m=2
def func(x,y=m): # y=>2的内存地址
print(x,y
m=3333333333333333333
func(1)
Modèle 2:
m = [111111, ]
def func(x, y=m): # y=>[111111, ]的内存地址
print(x, y)
m.append(3333333)
func(1)
3) Bien que la valeur par défaut peut être spécifié comme tout type de données, type de variable mais non recommandée
Fonction État idéal: appeler la fonction a seulement une relation avec la fonction elle-même, n'est pas affectée par le code extérieur
m = [111111, ]
def func(x, y=m):
print(x, y)
m.append(3333333)
m.append(444444)
m.append(5555)
func(1)
func(2)
func(3)
def func(x,y,z,l=None):
if l is None:
l=[]
l.append(x)
l.append(y)
l.append(z)
print(l)
func(1,2,3)
func(4,5,6)
new_l=[111,222]
func(1,2,3,new_l)
paramètre de longueur variable 2.4 (* et de l'utilisation **)
longueur variable se réfère à l'appel de fonction, le nombre de valeurs (argument) ne soit pas fixé entrant
et l' argument est utilisé comme paramètre d'affectation, les paramètres réels correspondants, pour le trop - plein doivent avoir une forme correspondant référence pour recevoir
2.4.1 position de longueur variable de paramètres
1) les noms de paramètres: pour recevoir le débordement de l' argument de l' emplacement, la position de débordement des participants réels sont enregistrées en tant que format tuple alors attribué le nom de paramètre immédiatement après
* talon peut être un nom, mais une convention devrait être args
def func(x,y,*z): # z =(3,4,5,6)
print(x,y,z)
func(1,2,3,4,5,6)
def my_sum(*args):
res=0
for item in args:
res+=item
return res
res=my_sum(1,2,3,4,)
print(res)
2) peuvent être utilisés dans les arguments, l'argument de la valeur du premier argument * brisé en position
def func(x,y,z):
print(x,y,z)
func(*[11,22,33]) # func(11,22,33)
func(*[11,22]) # func(11,22)
l=[11,22,33]
func(*l)
3) sont formées avec la participation d'arguments *
def func(x,y,*args): # args=(3,4,5,6)
print(x,y,args)
func(1,2,[3,4,5,6])
func(1,2,*[3,4,5,6]) # func(1,2,3,4,5,6)
func(*'hello') # func('h','e','l','l','o')
paramètres de mots-clés longueur variable 2.4.2
1) les noms de paramètres: des moyens pour recevoir le débordement d'argument mot-clé, le trop-plein sera enregistré comme un argument de format dictionnaire mot-clé, puis attribué au nom du paramètre dans ce qui suit immédiatement
def func(x,y,**kwargs):
print(x,y,kwargs)
func(1,y=2,a=1,b=2,c=3)
2) peut être utilisé dans l'argument (talon que le dictionnaire), la valeur de l'argument a rompu dans l'argument clé
def func(x,y,z):
print(x,y,z)
func(*{'x':1,'y':2,'z':3}) # func('x','y','z')
func(**{'x':1,'y':2,'z':3}) # func(x=1,y=2,z=3)
erreur
func(**{'x':1,'y':2,}) # func(x=1,y=2)
func(**{'x':1,'a':2,'z':3}) # func(x=1,a=2,z=3)
3) sont formés avec l'argument de participation **
def func(x,y,**kwargs):
print(x,y,kwargs)
func(y=222,x=111,a=333,b=444)
func(**{'y':222,'x':111,'a':333,'b':4444})
Mix * et **: * args doit
def func(x,*args,**kwargs):
print(args)
print(kwargs)
func(1,2,3,4,5,6,7,8,x=1,y=2,z=3)
def index(x,y,z):
print('index=>>> ',x,y,z)
def wrapper(*args,**kwargs): #args=(1,) kwargs={'z':3,'y':2}
index(*args,**kwargs)
index(*(1,),**{'z':3,'y':2})
index(1,z=3,y=2)
wrapper(1,z=3,y=2) # 为wrapper传递的参数是给index用的
Format original --- « Résumé ----- » montrer leurs couleurs