1, Introducción argumento entre la Forma
Parámetro: los parámetros definidos en la etapa llamados los parámetros formales función definida, se hace referencia como parámetro, que corresponde al nombre de variable
def func(x, y): # x=1,y=2
print(x, y)
Argumento: el aviso de llamada por llamada etapa real valor del parámetro, conocido como el argumento, lo que equivale al valor de la variable
func(1,2)
Las relaciones entre el argumento de forma:
1, la fase de llamada, el argumento (valor variable) será atado al parámetro (nombre de la variable)
2, esta relación de unión sólo se puede utilizar en el cuerpo de la función
3, la participación real en el parámetro de relación de unión en vigor cuando la llamada de función después del final de la llamada a la función de desvinculación
argumento de valor se pasa, pero el valor puede estar en la forma
Una forma:
func(1,2) #传入的是变量值
En la forma de dos:
a=1
b=2
func(a,b) #传入的是已经定义的变量
En la forma de tres:
func(int('1'),2) #输出1,2
func(func(1,2,),func(2,3)) #先运行参数的内容,因此先输出1,2和2,3,然后再运行外层函数输出None,None
2, el parámetro particular de real y usando
2.1 Parámetros posiciones: una posición llamada el parámetro de acuerdo con el parámetro definido secuencialmente de izquierda a derecha
Localización de parámetros: fase de definición de la función, de izquierda a derecha, la definición directa de "nombre de la variable"
Características: deben ser transferidos valor, ni uno más ni uno menos
def func(x,y):
print(x,y)
func(1,2,3)
func(1,)
Ubicación argumento: la función de fase llamada, de acuerdo con el orden y algunos de la izquierda con el valor de entrada
Características: el orden de un parámetro
func(1,2)
func(2,1)
2.2 parámetros de palabras clave
argumento Palabra clave: la fase llamada de función, en forma de clave = valor de la en pasado-valor
Características: por nombre para pasar un valor de parámetro, la secuencia de referencia puede ser completamente
def func(x,y):
print(x,y)
func(y=2,x=1)
func(1,2)
Mezclar, haciendo hincapié en:
1) El argumento de posición debe colocarse antes de que los parámetros de palabras clave reales
func(1,y=2)
func(y=2,1)
2) no puede pasar se puede repetir para el mismo valor del parámetro
func(1,y=2,x=3)
func(1,2,x=3,y=4)
2.3 parámetros por defecto
parámetro predeterminado: fase de definición de la función, se ha asignado un parámetro, denominado los parámetros por defecto
Características: Durante la fase de definición ya se ha asignado, lo que significa que la llamada no puede asignar un valor a la etapa
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,'女')
Localización en forma de participar mezcla de parámetros por defecto, haciendo hincapié en:
1) el parámetro de posición se debe dejar en el parámetro predeterminado
def func(y=2,x):
pass
2) El valor por defecto del parámetro es asignado en la fase de definición de función, se da precisamente el valor de la dirección de memoria
Modelo 1:
m=2
def func(x,y=m): # y=>2的内存地址
print(x,y
m=3333333333333333333
func(1)
Modelo 2:
m = [111111, ]
def func(x, y=m): # y=>[111111, ]的内存地址
print(x, y)
m.append(3333333)
func(1)
3) A pesar de que el valor predeterminado se puede especificar como cualquier tipo de datos, tipo de variable pero no se recomienda
Función de estado ideal: llamar a la función sólo tiene una relación con la propia función, no se ve afectado por el código externo
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)
parámetro variable longitud 2,4 (* y el uso **)
longitud variable se refiere a la llamada de función, el número de valores (argumento) no es fijo entrante
y el argumento se utiliza como la asignación de parámetros, los correspondientes parámetros reales para el desbordamiento deben tener una forma que corresponde referencia para recibir
2.4.1 posición de longitud variable parámetro
1) los nombres de parámetros: para recibir la ubicación de desbordamiento argumento, posición de desbordamiento de los participantes reales se guarda como un formato tupla entonces asignado inmediatamente después de nombre de parámetro
* talón puede ser cualquier nombre, pero debe ser una convención 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) pueden ser utilizados en los argumentos, el argumento con el valor del primer argumento * divide en posición
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) se forman con la participación de los argumentos *
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')
parámetros de palabras clave de longitud variable de 2.4.2
1) los nombres de parámetros: medios para recibir desbordamiento argumento de palabra clave, el desbordamiento se guardará como un formato argumento diccionario de palabras clave, y luego se asigna al nombre del parámetro en el inmediatamente posterior
def func(x,y,**kwargs):
print(x,y,kwargs)
func(1,y=2,a=1,b=2,c=3)
2) se pueden usar en el argumento (talón único diccionario), con el valor del argumento se ha roto en el argumento clave
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)
error
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) se forman con la participación argumento **
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})
Mezclar * y **: * args obligada
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用的
Formato original --- "Resumen -----" mostrar sus colores