Как сделать геттер и сеттер для класса-наследника?
Как сделать геттер и сеттер в классе Name чтобы я мог менять __value класса Name? Например когда пытаюсь дать значение:
n = Name()
n.value = 'Ivan'
print(n.value)
получаю ошибку:
AttributeError: 'super' object has no attribute '_Name__value'
Реализация классов:
class Field:
def __init__(self):
self.__value = None
@property
def value(self):
return self.__value
@value.setter
def value(self, value):
self.__value = value
class Name(Field):
def __init__(self):
super().__init__()
@property
def value(self):
return super().value
@value.setter
def value(self, name):
super().value = name
Источник: Stack Overflow на русском