On Mon, Oct 20, 2008 at 03:53:07PM +0200, Valerio Pachera wrote: > Ciao ragazzi, sto leggendo del codice di alcuni programmi e vi sono > delle cose che non mi sono chiare. > > def __init__(self, **kw): > super(Document, self).__init__(**kw) > > Correggetemi se sbaglio: > Qua viene definito il costruttore che richiama il costruttore della > classe genitore per estenderlo. > > Cosa sono gli asterischi???? > kv ha un significato particolare?
kw come keywords, spesso trovi anche kwargs, puoi usare il nome che più ti aggrada. **kw nella definizione di funzione indica che ogni keyword argument non precedentemente definito verrà messo in un dizionario kw. In [1]: def abc(**kw): ...: print kw ...: In [2]: abc(uno=1, due=2) {'due': 2, 'uno': 1} quindi kw a questo punto è un dizionario, se vuoi chiamare il costruttore di Document devi però passargli uno=1, due=2... '**' fa esattamente questo. Esiste anche l'omologo per gli argomenti ed è l'asterisco semplice: '*'. In [3]: def abc(*args): print args ...: In [5]: abc(1,2,'mno') (1, 2, 'mno') *:-) _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python