MisterCat
@MisterCat
Начинаю программировать.

Почему метод, декорированный @property, вызывается автоматически?

Здравствуйте. Есть несколько вопросов, связанные с декоратором @property:
  • Почему метод, декорированный @property, вызывается автоматически, ведь я не совершал команду person.name='python'?
  • Почему не создаётся отдельное свойство __name, а просто меняется на __name?
  • И нужно ли называть объект-свойство так же, как и свойство, с которым работаем(Если назвать по-разному, то автоматически не происходит вызов объекта-свойства)


class Person:
    def __init__(self, name):
        self.name = name

    @property
    def name(self):
        return self.__name

    @name.setter
    def name(self, val):
        self.__name = val


person = Person('Python')
print(person.__dict__)   # {'_Person__name': 'python'}
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
ведь я не совершал команду person.name='python'?

Совершал self.name = name
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы