Почему метод, декорированный @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'}

25 Авг 2022 в 19:52
136 +1
0
Ответы
1

Декоратор @property в Python позволяет объявить метод как свойство объекта. При этом, когда вы обращаетесь к этому методу как к атрибуту объекта (например, person.name), он вызывается автоматически без явного вызова метода.

В вашем случае, когда вы создаете объект person с атрибутом name, который является методом с декоратором @property, Python автоматически вызывает этот метод для получения значения атрибута name.

При использовании декоратора @property вам не нужно создавать отдельное свойство __name, так как сам декоратор позволяет работать с атрибутом name напрямую.

Что касается названия объекта-свойства, оно не обязательно должно совпадать с названием свойства, с которым работаете. Однако, если вы хотите, чтобы автоматически вызывался объект-свойство при обращении к атрибуту объекта, то название объекта-свойства должно совпадать с названием свойства, с которым он связан.

Надеюсь, это поможет вам лучше понять работу декоратора @property в Python. Если у вас остались дополнительные вопросы, не стесняйтесь задавать.

16 Апр в 18:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 076 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир