Как вызвать свойство базового класса, если это свойство перезаписывается в производном классе?
Я изменяю некоторые мои классы с широкого использования геттеров и сеттеров на более питонное использование свойств.
Но теперь я застрял, потому что некоторые из моих предыдущих получателей или установщиков вызывали соответствующий метод базового класса, а затем выполняли что-то еще. Но как это можно сделать с помощью свойств? Как вызвать свойство getter или setter в родительском классе?
Конечно, просто вызов самого атрибута дает бесконечную рекурсию.
<code>class Foo(object): @property def bar(self): return 5 @bar.setter def bar(self, a): print a class FooBar(Foo): @property def bar(self): # return the same value # as in the base class return self.bar # --> recursion! @bar.setter def bar(self, c): # perform the same action # as in the base class self.bar = c # --> recursion! # then do something else print 'something else' fb = FooBar() fb.bar = 7 </code>