Advertisement
Guest User

A custom dict (second try)

a guest
Feb 13th, 2013
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.70 KB | None | 0 0
  1. def set_of_attrs(cls):
  2.     cls._attrs = frozenset(dir(cls))
  3.     return cls
  4.  
  5. @set_of_attrs
  6. class pdict(dict):
  7.     @property
  8.     def foo(self):
  9.         print("foo.getter")
  10.  
  11.     @foo.setter
  12.     def foo(self, value):
  13.         print("foo.setter", value)
  14.        
  15.     def __getattr__(self, name):
  16.         return self.get(name, None)
  17.  
  18.     def __setattr__(self, name, value):
  19.         print("In pdict.__setattr__(self, %r, %r):" % (name, value))
  20.         if name in self._attrs:
  21.             print("\tsuper().__setattr__(%r, %r)" % (name, value))
  22.             super().__setattr__(name, value)
  23.         else:            
  24.             print("\tself[%r] = %r" % (name, value))
  25.             self[name] = value
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement