class Base:
def __init__(self):
self._prop = None
pass
def get_prop(self):
print('base get prop')
return self._prop
def set_prop(self, prop):
print('base set prop')
self._prop = prop
prop = property(get_prop, set_prop)
pass
class Derived(Base):
def set_prop(self, prop):
print('Derived set prop')
self._prop = prop
pass
base = Base()
base.prop = 1
print(base.prop)
derive = Derived()
derive.prop = 1
print(derive.prop)
результат:
base set prop
base get prop
1
base set prop
base get prop
1
Ожидается получение Derived set prop
, поскольку я переопределил его в производном классе.
Когда я погуглил, я увидел аннотацию с @Base.prop.setter
.Я тоже это попробовал, но это не сработало.Я думаю, это потому, что они создают Base
prop
по-другому.
Но я не могу легко обновить класс Base
в этой ситуации.
Один из способов - полностью перестроить prop
в классе Derive
, но я знаю, что это не правильный путь.Есть ли другой способ?