parámetros de la función de aprendizaje pitón

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

Supongo que te gusta

Origin www.cnblogs.com/leilijian/p/12520091.html
Recomendado
Clasificación