Невозможно переопределить метод получения свойства в подклассе, нет.Свойство - это объект, который живет в классе и содержит ссылки на функции, которые вы ему даете, - если вы позже переопределите имена этих функций, это вообще не повлияет на свойство.
То, что вы можете сделать, это иметь функции, которые вызовы вашего свойства выполняют косвенными вызовами, например:
class Example(object):
def __init__(self):
self.v = 0
@property
def v(self):
return self._v_getter()
@v.setter
def v(self, value):
return self._v_setter(value)
def _v_setter(self, value):
self._v = value
class SubExample(Example):
def _v_getter(self):
return 5
>>> se = SubExample()
>>> se.v
5
>>> se._v
0
>>> se.v = 10
>>> se.v
5
>>> se._v
10
В качестве альтернативы, вы можете переопределить все свойство в подклассе., просто определяя новое свойство.Однако у вас не будет удобного доступа к функциям или свойствам, определенным в родительском классе, и делать правильные вещи перед лицом множественного наследования сложно.