Что такое @property

Python Middle Aston
Что такое @property
Ответы
`@property` — это декоратор в Python, который позволяет превратить метод класса в атрибут, доступный для чтения. Он используется для инкапсуляции, контроля доступа и добавления логики при получении/изменении/удалении атрибута. **Пример:** ``` class Circle: def __init__(self, radius): self._radius = radius # защищённый атрибут @property def radius(self): print("Доступ к радиусу") return self._radius @radius.setter def radius(self, value): if value < 0: raise ValueError("Радиус не может быть отрицательным") self._radius = value circle = Circle(5) print(circle.radius) # выведет "Доступ к радиусу" и 5 circle.radius = 10 # работает через setter ``` **Ключевые моменты:** - `@property` делает метод атрибутом (`obj.attr` вместо `obj.attr()`). - Можно добавить `@attr.setter` и `@attr.deleter` для контроля записи/удаления. - Полезно для валидации, ленивых вычислений или совместимости с legacy-кодом.