[Python] Anomalia nella classe?

Gollum1 gollum1.smeagol1 a gmail.com
Sab 22 Giu 2013 14:57:14 CEST


Il giorno 22/giu/2013 14:44, "Marco Giusti" <marco.giusti a gmail.com> ha
scritto:
>
> On Sat, Jun 22, 2013 at 02:05:55PM +0200, Gollum1 wrote:
> > Come è possibile che funzioni e non mi dia errore? il mio dubbio è
> > dato dal fatto che la classe Block() è definita con solo un pass.
> >
> > come è dunque possibile che io possa aggiungere il blocco di dati e
> > poi stamparli? non dovrebbe dare un errore?
> >
> > (in pratica non ho ancora definito l'attributo data nella classe).
>
> il tuo dubbio è il seguente?
>
>         >>> class Block:
>         ...  pass
>         ...
>         >>> b = Block()
>         >>> b.data = "ciao"
>         >>> print b.data
>         ciao
>         >>>
>
> perché python non ha bisogno di definire un attributo, la definizione è
> al momento del primo assegnamento. ogni oggetto ha un attributo
> "__dict__" che è il dizionario degli attributi e quanto provi accedere
> ad un attributo, accedi anche a quel dizionario.
>

È quindi una assegnazione implicita... è come se venisse usato il metodo
"extend" se non ricordi male, invece di insert... o sbaglio ad interpretare
la cosa?

> ho detto anche perché python cerca anche nel dizionario della classe e
> dei genitori della classe.

Si... questo dell'ereditarietà credo di averlo già digerito (ho studiato la
programmazione ad oggetti, anche se è la prima volta che la uso in un mio
progetto)

-- 
Gollum1
tessssoro, dov'è il mio tessssoro...
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130622/ae83fcdc/attachment.html>


Maggiori informazioni sulla lista Python