[Python] *args vs. [1,2,3]
Manlio Perillo
manlio_perillo a libero.it
Lun 16 Mar 2009 15:46:47 CET
Alessandro Dentella ha scritto:
> Ciao,
>
> ogni tanto scoprio mio malgrado cose elementari che non capisco...
>
> ero convinto che nel passare argomenti ad una funzione, usare *list fosse
> equivalente a passare i singoli componenti (ed analogamente per i
> dizionari) ma vedo che non č cosė.
>
> def test(*args, **kw):
> pass
>
> a = [1,2,3]
> test(1,2,3, junk=True ) # funziona
> test(*a, junk=True ) # solleva syntax error
>
Stai facendo confusione su cosa faccia f(*a).
E' chiamato scompattamento della lista di argomenti:
http://docs.python.org/tutorial/controlflow.html#tut-unpacking-arguments
def f(a, b, c):
print a, b, c
a = [1, 2, 3]
f(*a)
Lo stesso vale per i dizionari.
Ciao Manlio
Maggiori informazioni sulla lista
Python