empaquetar y desempaquetar

Tny a.porrua en gmail.com
Mar Abr 25 14:11:04 CEST 2006


¿por qué ocurre esto?

 >>> def tupla():
    return(1,2,3)

 >>> def otra(a,b,c):
    print a,b,c
   
 >>> otra(tupla())

Traceback (most recent call last):
  File "<pyshell#7>", line 1, in -toplevel-
    otra(tupla())
TypeError: otra() takes exactly 3 arguments (1 given)

 >>> def otra(a=0, b=0, c=0):
    print a,b,c

   
 >>> otra(a,b,c=tupla())
Traceback (most recent call last):
  File "<pyshell#21>", line 1, in -toplevel-
    otra(a,b,c=tupla())
NameError: name 'a' is not defined

 >>> otra(tupla())
(1, 2, 3) 0 0

¿cómo se pueden desempaquetar tuplas en la llamada a una función?
es decir no desempaquetar primero y llamar despúes:
a,b,c=tupla()
otra(a,b,c)




Más información sobre la lista de distribución Python-es