Встречается на собеседованиях • сегодня

Пользовался ли @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 = value

circle = Circle(5)
print(circle.radius) # Вызовет геттер
circle.radius = 10 # Вызовет сеттер

text

**Плюсы:**  
- Инкапсуляция: скрывает внутреннюю реализацию.  
- Валидация: контроль значений при установке.  
- Ленивые вычисления: атрибут может вычисляться только при обращении.  

**Нюансы:**  
- Не стоит злоупотреблять, если логика простая — это усложняет код.  
- Геттер без сеттера делает атрибут read-only.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы