[Python] Domande varie
Alessandro Dentella
sandro a e-den.it
Lun 20 Ott 2008 16:37:01 CEST
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')
*:-)
Maggiori informazioni sulla lista
Python