[pyar] Objetos proxy
Juanjo Conti
jjconti en gmail.com
Jue Jun 10 09:53:31 ART 2010
Retomo algo de otro hilo. Esta implementación de Proxy fue sugerida:
class Maybe:
def __init__(self, value):
self.__dict__["__val"] = value
def borrar(self):
self.__dict__["__val"] = "borrado"
def __getattr__(self, name):
if name in self.__dict__:
return self.__dict__[name]
return getattr(self.__dict__["__val"]
, name)
def __setattr__(self, name, value):
if name in self.__dict__:
self.__dict__[name] = value
return
return setattr(self.__dict__["__val"], name, value)
def __delattr__(self, name):
if name in self.__dict__:
del self.__dict__[name]
return
return delattr(self.__dict__["__val"], name)
Encontré que funcionaba para todo lo que quería, pero cuando operaba por
ejemplo:
a = Maybe('8')
a+a
obtenía un error, no se puede sumar str con instance.
Pensé en hacer que Maybe extienda str, pero me encontré con el problema de
que __getattr__ ya no era llamado y print a muentra el valor original en
lugar de 'borrado'. Podría user __getattribute__ para si o si interceptar la
llamada? cómo? en mis intentos siempre obtengo una excepción de recursión!
Saludos y gracias,
--
Juanjo Conti
blog: http://www.juanjoconti.com.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100610/4bdec529/attachment.html>
More information about the pyar
mailing list