Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/09/2009, 15:33
Avatar de lufe
lufe
 
Fecha de Ingreso: mayo-2009
Mensajes: 294
Antigüedad: 15 años
Puntos: 15
Duda sobre función con número variable de argumentos

Según el libro:

"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:
def varios(param1, param2, *otros):
    for val in otros:
        print val

varios(1, 2)
varios(1, 2, 3)
varios(1, 2, 3, 4)
Obtengo:

3
3
4

y no

3
34