Задать вопрос
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'}
  • Вопрос задан
  • 114 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
ведь я не совершал команду person.name='python'?

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

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

Похожие вопросы