efphe ha scritto:
[...]
In Python la classe base non è inizializzata a meno che non lo
richieda tu esplicitamente.
Mi sembrava che la frase:
"""
ma nel mio caso voglio che le mie classi utilizzino tutte lo *stesso padre*
"""
fosse chiara.
Il problema non sta nell'inizializzazione, e non si aggira non
inizializzando nulla.
Mi spiego in altre parole: ho bisogno di *un*'istanza Foo che venga
utilizzata da *ogni* istanza Bar, in modo che l'istanza Foo sia
condivisa, persistente e shared per ogni classe Bar.
A parte la persistenza (ma che cosa intendi), usare il pattern Borg per
la classe base mi sembra la soluzione più semplice.
Al tempo stesso, mi chiedo se sia possibile (di certo lo e', basta fare
abbastanza hack) e come possa essere implementato un meccanismo di
"esportazione di tipo ereditaria": il metodo inc, in altre parole,
dovrebbe inizializzare il primo argomento (self) a Bar.bar e non a Foo.foo.
Ma attenzione, se ho due istanza Bar, B e C, devo avere:
memory_address(B.inc)= memory_address(C.inc)
Se è proprio questo quello che vuoi, puoi fare:
import types
bar.inc = types.MethodType(foo.inc.im_func, bar)
Leggi http://docs.python.org/ref/types.html per maggiori info.
Saluti Manlio Perillo
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python