Для чего используется @property в Python
Python
Middle
Без компании
Для чего используется @property в Python
Ответы
Декоратор `@property` позволяет превратить метод класса в атрибут, который можно читать как обычное поле, но с возможностью добавить логику при обращении к нему.
**Основные применения:**
- **Контроль доступа** – проверка/валидация при чтении/записи
- **Ленивые вычисления** – значения вычисляются только при обращении
- **Совместимость** – изменение внутренней реализации без изменения API
**Пример:**
```
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
```
**Вызов:**
```
c = Circle(5)
print(c.radius) # вызовет геттер
c.radius = 10 # вызовет сеттер
```