Зачем нужна функция property() в Python
Python
Middle
Aston
Зачем нужна функция property() в Python
Ответы
Функция `property()` позволяет превращать методы класса в атрибуты, обеспечивая контроль доступа к данным через геттеры, сеттеры и делитеры. Это полезно для:
- **Инкапсуляции** – скрытия внутренней реализации и валидации данных.
- **Вычисления значений на лету** – динамического получения атрибутов.
- **Обеспечения обратной совместимости** – можно изменить логику хранения данных, не ломая API.
**Пример:**
```
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
@property
def area(self):
return 3.14 * self._radius ** 2 # Вычисляемое свойство
```
Здесь `radius` и `area` доступны как атрибуты, но с дополнительной логикой.