Como una de las sintaxis más exclusivas de Python, *args nos dará mucha flexibilidad y comodidad durante la programación. Yo diría que reflejaron lo que es “Pythonic” y el Zen de Python.
Sin embargo, descubrí que son difíciles de entender para los alumnos. En este artículo, haré todo lo posible para explicar este concepto icónico en Python y proporcionar casos de uso prácticos basados en mi conocimiento. Espero que te ayude a entenderlo mejor.
*args significa “argumentos”. Nos permite pasar cualquier número de argumentos posicionales (lo explicaré más adelante) a una función. Dentro de la función, podemos obtener todos los argumentos posicionales de una tupla. Entonces, podemos hacer lo que sea con la tupla de argumentos de la función.
He aquí un ejemplo sencillo de *args.
def add_up(*numbers):
result = 0
for num in numbers:
result += num
return resultprint(add_up(1, 2, 3))
Cuando llamamos a esto add_up() función, le hemos pasado tres argumentos posicionales. En Python, si no especificamos los nombres de los argumentos, serán tratados como argumentos posicionales. Estos argumentos se determinan en función de su posición, por eso se denominan argumentos posicionales.
En el ejemplo anterior, todos los argumentos posicionales 1, 2, 3 fueron pasados a la función y “atrapados” por el *numbers parámetro. Entonces, podemos acceder a todos estos argumentos desde este parámetro. numbers. el asterisco * simplemente le dice a Python que esto es un *args tipo de parámetro. Después de eso, un bucle for simple suma todos los argumentos e imprime el resultado.
La belleza de *arg, como se mencionó anteriormente, es que puede tomar cualquier número de argumentos posicionales. Por lo tanto, podemos pasar más argumentos si es necesario.
print(add_up(1, 2, 3, 4))
Aquí podemos verificar si la variable numbers es una tupla agregando una línea a la función original.
def add_up(*numbers)…