[Python] override di __getattribute__ per avere getter e setter "automatici"

Lawrence Oluyede l.oluyede a gmail.com
Dom 29 Giu 2008 22:11:23 CEST


2008/6/29 Francesco Stablum <stablum a gmail.com>:

> il codice di ImprovedObject si e' ridotto a questo:
> class ImprovedObject(object):
>    def __init__(self):
>        self.__metaclass__ = autoprop
>
> l'assegnazione di __metaclass__ l'ho messa nell'__init__ della
> superclasse al fine di non doverla
> dichiarare nelle classi figlie.

Cosi però devi stare attento a non sovrascrivere l'init di
ImprovedObject. E se lo sovrascrivi ricordati di chiamarlo ;)

> Le metaclassi sono molto interessanti, cosi' come tutto l'aspetto di
> introspezione del python e
> le magnifiche lambda. Ho come l'impressione che tutti questi elementi
> manderanno in pensione
> un sacco di design pattern descritti in letteratura.

Beh già vari design pattern sono parte del linguaggio Python e delle
sue strutture dati, non c'è bisogno di arrivare sino alle metaclassi
:P


-- 
Lawrence, stacktrace.it - oluyede.org - neropercaso.it
"It is difficult to get a man to understand
something when his salary depends on not
understanding it" - Upton Sinclair


Maggiori informazioni sulla lista Python