El significado de / y * están permitidos en los parámetros de función después de python3.8

Después de python3.8, / y * están permitidos en los parámetros de función. / Se usa para indicar que ciertos parámetros de función deben usar parámetros posicionales en lugar de parámetros de palabras clave. El primer significado de * aparece en los parámetros de función se puede expresar como parámetros variables generalmente se escriben como * args; para los * parámetros que aparecen solos en los parámetros, significa que los parámetros después de * deben estar en forma de parámetros de palabra clave. A continuación, explicaremos el uso en detalle:

1 / Uso de parámetros

Si desea que la persona que llama a la función use solo parámetros posicionales en una determinada posición de parámetro y no use parámetros de palabras clave para pasar parámetros, entonces solo necesita poner / después de la posición deseada.

def f1(a, b, /):
    return a + b

Para la función anterior, al llamar a f1, los parámetros ayb solo pueden ser valores específicos y no pueden ser pasados ​​por palabras clave, es decir, f1 (2, 3) se ejecuta correctamente y f1 (a = 2, 3) y f1 (2, b = 3) Se ejecutará un error.

2 * Uso de parámetros

El primer uso de * es más común, por lo que no entraré en detalles aquí, y principalmente explicaré el segundo uso de * en detalle aquí. Si desea forzar a la persona que llama a usar ciertos parámetros, y debe pasarlos en forma de parámetros de palabras clave, solo necesita colocar un * en la posición antes de la posición deseada.

def f1(a, *, b, c):
    return a + b + c

Para la función anterior, el parámetro a puede ser cualquier valor al llamar, pero los parámetros byc deben pasarse como parámetros de palabra clave, como f1 (1, b = 4, c = 5); de lo contrario, se informará un error.

def f2(a, *, b, c=5):
    return a + b + c

Si se llama a la función en este caso, el parámetro a puede ser cualquier valor, pero el parámetro b debe pasarse como un parámetro de palabra clave, como f2 (2, b = 3), pero si desea pasar el parámetro c , luego el parámetro c. Los requisitos de y los parámetros b están en forma de parámetros de palabra clave, como f2 (2, b = 3, c = 4).

3 / y * ambos aparecen en los parámetros de función

Por ejemplo, definimos una función f

def f(a, b, /, c, *, d, e):
    print(a, b, c, d, e)

Cuando llamamos a la función f, los parámetros ayb pueden ser los valores admitidos por cualquier tipo de python, es decir, los parámetros no se pueden pasar en forma de palabras clave; c pueden ser los valores admitidos por cualquier tipo de python, y d, e solo se pueden parametrizar mediante palabras clave Pasar la referencia. Los siguientes métodos de llamada arrojarán excepciones

f(a=1, 2, c=3, d=4, e=5) # a不能以关键字参数传参

f(1, 2, 3, 4, e=5) # d只能以关键字参数传参

4 resumen

Si desea que la persona que llama use la función para no usar parámetros de palabras clave para pasar parámetros, entonces solo necesita poner estos parámetros delante de /; si desea que la persona que llama use la función, se deben usar ciertos parámetros, y deben be palabras clave Los parámetros se pasan, entonces solo necesita poner estos parámetros después de *.

Autor: Yang Hangfeng
Enlace: https: //www.zhihu.com/question/287097169/answer/453193254
Fuente: saber casi con
derechos de autor del autor. Para reimpresiones comerciales, comuníquese con el autor para obtener autorización. Para reimpresiones no comerciales, indique la fuente.
 

Supongo que te gusta

Origin blog.csdn.net/zilan23/article/details/109963021
Recomendado
Clasificación