Я читаю кулинарную книгу по Python и у меня есть вопросы в главе 8.8.В SubPerson почему следующий код не работает в функции установки?super (). name = value или super (SubPerson, SubPerson) .name = value
Если вы посмотрите на функцию получения в SubPerson, super (). name работает.Зачем?
class Person:
def __init__(self, name):
self.name = name
# Getter function
@property
def name(self):
return self._name
# Setter function
@name.setter
def name(self, value):
if not isinstance(value, str):
raise TypeError('Expected a string')
self._name = value
class SubPerson(Person):
@property
def name(self):
print('Getting name')
return super().name # Why super().name works here?
@name.setter
def name(self, value):
print('Setting name to', value)
super(SubPerson, SubPerson).name.__set__(self, value)
#super().name = value ... This statement gets error
#super(SubPerson, SubPerson).name = value ...Get Error