[Python] lavorare con più classi
Daniele Varrazzo
piro a develer.com
Lun 19 Nov 2007 11:49:19 CET
On Mon, 19 Nov 2007 10:56:49 +0100, Francesco Demuro
<francesco.demuro a sinapsi.it> wrote:
>
> Ciao,
> volevo inserirmi nel discorso è chiedere una delucidazione :
> Python è definito come un linguaggio di *Script*.
> Nell'esempio che ha fornito Carlo, oltre al problema
> dell' *if ( __name__=='__main__'*):
> il problema non è anche causato dal fatto che comunque
> ClasseB è definita *dopo* ClasseA ?
No, non hai questo tipo di problema, perché:
class ClasseA:
def metodoA(self, messaggio):
b = ClasseB()
b.stampa(messaggio)
class ClasseB:
def stampa(self, messaggio):
print messaggio
quando importi, il file viene eseguito e vengono creati gli oggetti ClasseA
e ClasseB. ClasseA invoca ClasseB solo quando viene invocato metodoA(), che
è successo dopo l'import del modulo.
In particolare, l'effetto dello statement:
def f(args):
suite
è quello di "compilare" la suite e associare questo oggetto compilato al
nome f: in questo momento non è necessario che tutti i nomi utilizzati
dalla suite siano già risolti. La risoluzione avverrà solo alle
esecuzioni di f, con dei lookup.
Diverso sarebbe stato il caso di un comando che viene eseguito all'import,
ad esempio:
class ClasseC:
amico = ClasseD
class ClasseD:
pass
questo non funziona, ma comincia a funzionare invertendo le definizioni.
--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
More information about the Python
mailing list