Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class pdict(dict):
- @property
- def foo(self):
- print("foo.getter")
- @foo.setter
- def foo(self, value):
- print("foo.setter", value)
- def __getattr__(self, name):
- # Si se invoca este método es porque se quiere acceder
- # a un atributo que no es propio del diccionario.
- # Devuelve el valor asociado a `name` (o None).
- return self.get(name, None)
- def __setattr__(self, name, value):
- try:
- # ¿La instancia contiene un atributo llamado `name`?
- self.__getattribute__(name)
- except AttributeError:
- # No, lo uso como clave para guardar en el dict.
- self[name] = value
- else:
- # Si, uso el mecanismo usual para asignar atributos.
- super().__setattr__(name, value)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement