El propósito de * y ** en Python
-
La Definición de
*
en Python -
La Definición de
**
en Python -
Los usos de
*
y**
en llamadas a funciones en Python
Este artículo explica el propósito de *
y **
en Python.
En Python, usamos el asterisco simple (*
) y el asterisco doble (**
) para significar un número variable de argumentos.
Podemos pasar cualquier número de argumentos en una función de Python de cualquiera de las siguientes formas.
- Argumentos posicionales (
*
) - Argumentos de palabras clave (
**
)
La Definición de *
en Python
Utilice el símbolo *
en Python para permitir un número variable de argumentos / parámetros posicionales para la función.
Siga el ejemplo a continuación.
def function_singleasterix(*someargs):
for i in someargs:
print(i)
Ahora, el código del controlador, ya sea con lista
o tuple
es el siguiente.
listdata = ["Alex", "Tom", "John", "Alice"]
function_singleasterix(listdata)
Producción :
['Alex', 'Tom', 'John', 'Alice']
Utilice argumentos solo posicionales si no desea que los usuarios conozcan el nombre de los parámetros.
Por ejemplo, es aconsejable utilizar variables solo posicionales en las API; esto evita roturas en caso de cambios en la API si se modifica el nombre del parámetro.
La Definición de **
en Python
Utilice el símbolo **
en Python para permitir un número variable de argumentos / parámetros de palabras clave para la función. Tenga en cuenta que el argumento posterior debe ser un elemento de mapeo (par clave-valor de diccionario), no una tupla o una lista.
Siga el código de ejemplo a continuación.
def function_doubleasterix(**keywordargs):
print("The keys in the kwargs dicionary are -", keywordargs.keys())
print("The values in the kwargs dicionary are -", keywordargs.values())
print("--The key value assignment in the 'keywordargs' dictionary are as follows--")
for key, value in keywordargs.items():
print("%s == %s" % (key, value))
En el ejemplo anterior, keywordargs
está asociado con un diccionario
como en el programa siguiente.
function_doubleasterix(SNo001="Alex", SNo002="Tom")
Producción :
The keys in the 'keywordargs' dicionary are - dict_keys(['SNo001', 'SNo002'])
The values in the 'keywordargs' dicionary are - dict_values(['Alex', 'Tom'])
--The key value assignment in the 'keywordargs' dictionary are as follows--
SNo001 == Alex
SNo002 == Tom
En el ejemplo anterior, **keywordargs
proporciona argumentos de palabras clave como pares clave-valor de diccionario
.
Los usos de *
y **
en llamadas a funciones en Python
Los símbolos *
y **
también se utilizan en las llamadas a funciones. Úselos para pasar un número variable de argumentos a una función usando cualquiera de los siguientes.
- una lista -
*
- una tupla -
*
- un diccionario -
**
Aquí hay varios ejemplos que puede seguir.
Llame a la función con una lista
de variables como entrada. Utilice *
como sigue
varlist = ["Tom", "John", "Alice"]
functiondef(*varlist)
Llame a la función con una variable diccionario
como entrada. Utilice **
de la siguiente manera
vardict = {"a": "Tom", "b": "John", "c": "Alice"}
functiondef(**vardict)
Llame a la función con una variable tuple
como entrada. Utilice *
como sigue
vartuple = ("Tom", "John", "Alice")
functiondef(*vartuple)
La salida para todos los casos anteriores es:
SNo1 = Tom
SNo2 = John
SNo3 = Alice