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