[Python] exporting di classi
Manlio Perillo
manlio_perillo a libero.it
Ven 1 Dic 2006 15:07:48 CET
Federico Tomassini ha scritto:
> Ciao a tutti,
>
> ho un dubbio sui python internal.
> Ecco la situazione; ho due classi:
>
> ###
> class Foo:
> def __init__(self):
> self.x= 0
> def inc(self):
> self.x+= 1
>
> class Bar:
> def __init__(self):
> self.x= 0
>
> foo=Foo()
> bar=Bar()
> ###
>
> Poi, eseguo cio' che chiamo un'exporting di classe:
>
> ###
> attr= getattr(foo, 'inc')
> setattr(bar, 'inc', attr)
> ###
>
> In questo modo la classe `bar` avra' il metodo 'inc',
> richiamabile tramite `self.inc`.
>
> Se a questo punto qualcuno si chiedesse perche' non
> eredito, la risposta e' la seguente: l'ereditarieta'
> costringe, per ogni classe, a inizializzare un nuovo
> padre; queso in genere non e' un problema, ma nel mio
> caso voglio che le mie classi utilizzino tutte lo
> *stesso padre*, e non un' istanza ciascuna.
>
In Python la classe base non è inizializzata a meno che non lo richieda
tu esplicitamente.
Basta non chiamare l'__init__ della classe base.
Infine per fare in modo che lo stato della classe base sia unico cerca
"pattern Borg".
Saluti Manlio Perillo
Maggiori informazioni sulla lista
Python