Зачем нужен @property
Python
Middle
Без компании
Зачем нужен @property
Ответы
Декоратор `@property` в Python используется для создания управляемых атрибутов класса, позволяя добавлять логику при доступе, изменении или удалении атрибута.
**Преимущества:**
- Инкапсуляция: скрывает внутреннюю реализацию, позволяя изменять её без изменения интерфейса.
- Валидация: можно проверять значения перед установкой.
- Ленивые вычисления: вычислять значение только при обращении.
**Пример:**
```
class Circle:
def __init__(self, radius):
self._radius = radius # защищённый атрибут
@property
def radius(self):
return self._radius
@radius.setter
def radius(self, value):
if value <= 0:
raise ValueError("Радиус должен быть положительным")
self._radius = value
```
Здесь `radius` — это свойство с валидацией при установке значения.