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

Что делает @property в Python

@property — это декоратор, который превращает метод класса в атрибут только для чтения. Он позволяет управлять доступом к атрибутам, добавляя логику при их получении, изменении или удалении.

Пример:

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 = value

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

text

**Как это работает:**  
- `@property` создает геттер для атрибута.  
- `@attr.setter` позволяет определить сеттер.  
- `@attr.deleter` — делитер (удаление).  

**Плюсы:**  
- Контроль над доступом к атрибутам.  
- Возможность добавить валидацию.  
- Обратная совместимость (можно заменить обычный атрибут на property без изменения кода).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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