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