On Mon, Mar 16, 2009 at 03:46:47PM +0100, Manlio Perillo wrote: ... > > 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).
non mi pare proprio... > 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) ed è ben così che l'ho usata anche nell'esempio On Mon, Mar 16, 2009 at 04:05:51PM +0100, Daniele Varrazzo wrote: > test(junk=True, *a) funziona come ti aspetti questo lo avevo notato, ma il mio cervello lo ha filtrato, avendo presente che > è vero che gli argomenti posizionali vanno dopo quelli nominali (quindi > "test(foo=10, 1)" è un errore), già.. > ma gli argomenti * e ** vanno comunque alla fine. ecco la parte che mi mancava! Leggendo la documentazione che mi hai indicato:: consequence of this is that although the *expression syntax may appear after some keyword arguments, it is processed before the keyword arguments dice solo *may appear*, non *must appear*, bisogna leggere con attenzione la grammatica per cogliere quello mi era sfuggito! grazie *:-) _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python