Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def set_of_attrs(cls):
- cls._attrs = frozenset(dir(cls))
- return cls
- @set_of_attrs
- class pdict(dict):
- @property
- def foo(self):
- print("foo.getter")
- @foo.setter
- def foo(self, value):
- print("foo.setter", value)
- def __getattr__(self, name):
- return self.get(name, None)
- def __setattr__(self, name, value):
- print("In pdict.__setattr__(self, %r, %r):" % (name, value))
- if name in self._attrs:
- print("\tsuper().__setattr__(%r, %r)" % (name, value))
- super().__setattr__(name, value)
- else:
- print("\tself[%r] = %r" % (name, value))
- self[name] = value
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement