[Python] exporting di classi
Manlio Perillo
manlio_perillo a libero.it
Ven 1 Dic 2006 16:53:28 CET
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
Maggiori informazioni sulla lista
Python