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

Зачем нужна функция property() в Python

Функция property() позволяет превращать методы класса в атрибуты, обеспечивая контроль доступа к данным через геттеры, сеттеры и делитеры. Это полезно для:

  1. Инкапсуляции – скрытия внутренней реализации и валидации данных.
  2. Вычисления значений на лету – динамического получения атрибутов.
  3. Обеспечения обратной совместимости – можно изменить логику хранения данных, не ломая API.

Пример:

python
class Circle:
    def __init__(self, radius):
        self._radius = radius  # Приватный атрибут

    @property
    def radius(self):
        return self._radius

    @radius.setter
    def radius(self, value):
        if value < 0:
            raise ValueError("Радиус не может быть отрицательным")
        self._radius = value

    @property
    def area(self):
        return 3.14 * self._radius ** 2  # Вычисляемое свойство

Здесь radius и area доступны как атрибуты, но с дополнительной логикой.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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