[Python] override di __getattribute__ per avere getter e setter "automatici"
Francesco Stablum
stablum a gmail.com
Dom 29 Giu 2008 18:14:05 CEST
Un saluto a tutti,
mi chiamo Francesco e sono nuovo della lista :-)
Ho cominciato ad usare il python un paio di mesi fa per lavoro e lo
trovo un linguaggio estremamente interessante e potente, soprattutto
sul versante dell'introspezione.
Vorrei condividere con voi del codice che ho scritto per creare setter
e getter "automatici".
potete visionarlo al seguente url:
http://rafb.net/p/bQDQAF11.html
l'obiettivo e' quello di creare un "sostituto" di "object" per
estendere le sue funzionalita' e dare la possibilita'
di definire variabili d'istanza con l'override degli operatori
"assegnazione" e "lettura".
Per raggiungere questo scopo ho ridefinito i metodi __getattribute__ e
__setattr__
l'obiettivo e' quello che un pezzo di codice come questo:
obj.foobar = 42
chiami il metodo "set_foobar(42)" definito dentro "obj"
come vi sembra come idea e come design?
inoltre ho un problemino: non riesco ad accedere alla variabile
"__foobar" all'interno del metodo __getattribute__
avete qualche idea? (il problema e' segnato con un FIXME all'interno
del codice all'url http://rafb.net/p/bQDQAF11.html )
saluti,
Francesco
--
The generation of random numbers is too important to be left to chance
- Robert R. Coveyou
Maggiori informazioni sulla lista
Python