Что такое функция property() в Python
Python
Middle
Aston
Что такое функция property() в Python
Ответы
Функция `property()` в Python создаёт дескриптор для управления доступом к атрибуту класса. Она позволяет добавлять getter, setter и deleter методы к атрибуту, сохраняя синтаксис обычного обращения к атрибуту.
Пример:
```
class Circle:
def __init__(self, radius):
self._radius = radius
@property
def radius(self):
print("Getting radius")
return self._radius
@radius.setter
def radius(self, value):
if value < 0:
raise ValueError("Radius cannot be negative")
print("Setting radius")
self._radius = value
c = Circle(5)
print(c.radius) # вызовет getter
c.radius = 10 # вызовет setter
```
Ключевые моменты:
- Позволяет добавлять валидацию при установке значения
- Позволяет вычислять значения на лету при чтении
- Сохраняет инкапсуляцию, скрывая реальное имя атрибута
- Позволяет изменять внутреннюю реализацию без изменения интерфейса класса