[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