Base diez de la función Python: parámetros posicionales y parámetros de palabras clave

  1. Parámetros posicionales y de palabras clave

Los parámetros reales se dividen en parámetros posicionales y parámetros de palabras clave de acuerdo con los diferentes métodos de transferencia.1
) Cuando los parámetros posicionales
llaman a la función, deje que los parámetros reales y los parámetros formales se correspondan entre sí (el primer parámetro real se asigna al primer parámetro formal y el segundo Asignar valor al segundo parámetro formal con un parámetro real ...)
Formato: Datos 1, Datos 2, Datos 3, ...

位置参数
func1(10, 20, 30)       # x:10, y:20, z:30
func1(10, 30, 20)       # x:10, y:30, z:20

2) Parámetros de palabras clave
Deje que los parámetros reales y los parámetros formales se correspondan entre sí mediante palabras clave (nombres de parámetros formales)
Formato: nombre de parámetro formal 1 = datos 1, nombre de parámetro formal 2 = datos 2, ...

关键字参数
func1(x=100, y=200, z=300)   # x:100, y:200, z:300
func1(z=30, x=10, y=20)     # x:10, y:20, z:30
# func1(x=100, y=200, y=300)    # 报错!

3)
Uso mixto de parámetros clave y parámetros posicionales . Cuando se combinan, los parámetros posicionales deben estar delante de los parámetros de palabras clave

* Parámetros significa que puede haber múltiples parámetros

混用
func1(10, z=30, y=20)    # x:10, y:20, z:30
# func1(x=20, 40, z=60)   # 抱错!位置参数必须在关键字参数的前面

print(10, end='a')
print(10, 20, 30, sep=',')

def print(*data, end='\n', sep=' '):
    pass
sorted([1, 23, 8], reverse=True)
  1. Valor predeterminado del parámetro Al
    definir una función, puede asignar un valor predeterminado al parámetro en forma de 'nombre de parámetro formal = datos'. Al llamar a la función, el parámetro con valor predeterminado no se puede asignar.
    Nota: El parámetro con valor predeterminado debe estar en el parámetro sin valor predeterminado. Detrás
def func2(x=1, y=10, z=100):
    print(f'x:{x}, y:{y}, z:{z}')


func2(1, 2, 3)    # x:1, y:2, z:3
func2(10, 20)    # x:10, y:20, z:100
func2(10)
func2()

func2(y=200)
func2(z=300)

3. Descripción del tipo de parámetro Al
definir una función, puede explicar el tipo de parámetro

  1. Asigne un valor predeterminado, qué tipo es el valor predeterminado y qué tipo de parámetro es la descripción
  2. Nombre de parámetro formal: tipo de datos
def func5(x: list) -> None:
    x.append('100')
func5([])

4. Parámetro de longitud variable
Agregue o agregue **
antes del parámetro formal para hacer de este parámetro un parámetro de longitud variable. El parámetro formal del parámetro de longitud variable puede aceptar múltiples parámetros reales al mismo tiempo 1) El parámetro de longitud variable
con * se convertirá en una tupla, los elementos de la tupla son los parámetros reales correspondientes

Nota: A con una función puede estar presente simultáneamente y sin parámetros, si sin la banda detrás, los parámetros deben usarse sin el parámetro de tecla *
. B cinturón / * parámetro debe usar el parámetro de posición

2) Los parámetros de longitud variable
con / ** Los parámetros de longitud variable con / ** se convertirán en un diccionario; al llamar, use los parámetros de palabras clave para pasar los parámetros, cada palabra clave es la clave del diccionario y los datos detrás de la palabra clave son el diccionario Valor de

Nota: a. Al definir, el parámetro de longitud fija debe colocarse antes del parámetro / ** de longitud variable.
B. El parámetro de longitud variable con / * y / ** puede existir al mismo tiempo, pero / * debe estar antes de / **. (Si existe al mismo tiempo, la función puede ser más flexible al llamar)

def func6(*x):
    print(f'x:{x}')


func6()
func6(10)
func6(10, 20)
func6(1, 2, 3, 4, 5)
# 练习:定义一个函数,可以求多个数的和
# sum1(10, 20)  sum1(10, 20, 30)
def sum1(*num):
    s = 0
    for x in num:
        s += x
    print(s)

def func10(x, **y):
    print(f'x:{x}, y:{y}')


func10(10, a=20, c=30, d=40)    # x:10, y:{'a': 20, 'c': 30, 'd': 40}
func10(a=1, b=2, c=3, x=100)    # x:100, y:{'a': 1, 'b': 2, 'c': 3}

def func8(*x, y):
    print(f'x:{x}, y:{y}')


func8(1, 2, 3, y=10)

Supongo que te gusta

Origin blog.csdn.net/SaharaLater/article/details/111564450
Recomendado
Clasificación