Python: multiple properties, one setter/getter -
consider following class definitions
class of2010(object):     def __init__(self):         self._a = 1         self._b = 2         self._c = 3      def set_a(self,value):         print('setting a...')         self._a = value     def set_b(self,value):         print('setting b...')         self._b = value     def set_c(self,value):         print('setting c...')         self._c = value     = property(fset=self.set_a)     b = property(fset=self.set_b)     c = property(fset=self.set_c)   note set_[a|b|c]() same thing. there way define:
def set_magic(self,value):     print('setting <???>...')     self._??? = value   once , use a,b,c follows
a = property(fset=self.set_magic) b = property(fset=self.set_magic) c = property(fset=self.set_magic)      
def attrsetter(attr):   def set_any(self, value):     setattr(self, attr, value)   return set_any  = property(fset=attrsetter('_a')) b = property(fset=attrsetter('_b')) c = property(fset=attrsetter('_c'))      
Comments
Post a Comment