"Para defnir funciones con un número variable de argumentos colocamos un último parámetro para la función cuyo nombre debe precederse de un signo *:
def varios(param1, param2, *otros):
for val in otros:
print val
varios(1, 2)
varios(1, 2, 3)
varios(1, 2, 3, 4)
Esta sintaxis funciona creando una tupla (de nombre otros en el
ejemplo) en la que se almacenan los valores de todos los parámetros
extra pasados como argumento. Para la primera llamada, varios(1, 2),
la tupla otros estaría vacía dado que no se han pasado más parámetros
que los dos defnidos por defecto, por lo tanto no se imprimiría nada.
En la segunda llamada otros valdría (3, ), y en la tercera (3, 4)."
Sin embargo si yo ejecuto el código:
Código:
Obtengo:def varios(param1, param2, *otros): for val in otros: print val varios(1, 2) varios(1, 2, 3) varios(1, 2, 3, 4)
3
3
4
y no
3
34