Python: multiple properties, one setter/getter
getter-setter, properties, python, setter
Solution
def attrsetter(attr):
def set_any(self, value):
setattr(self, attr, value)
return set_any
a = property(fset=attrsetter('_a'))
b = property(fset=attrsetter('_b'))
c = property(fset=attrsetter('_c'))
Problem
Consider the 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 a = property(fset=self.set_a) b = property(fset=self.set_b) c = property(fset=self.set_c) ``` note that `set_[a|b|c]()` do the same thing. is there a way do define: ``` def set_magic(self,value): print('setting <???>...') self._??? = value ``` once and use it for a,b,c as follows ``` a = property(fset=self.set_magic) b = property(fset=self.set_magic) c = property(fset=self.set_magic) ```