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

Зачем нужен дескриптор

Дескрипторы в Python позволяют управлять доступом к атрибутам класса, реализуя протокол __get__, __set__ и __delete__. Они полезны для:

  1. Валидации данных — контроль значений атрибутов.
  2. Ленивых вычислений — вычисление значения только при обращении.
  3. Кэширования — хранение результатов дорогостоящих операций.
  4. Логирования — отслеживание доступа к атрибутам.

Пример:

python
class PositiveNumber:
    def __set__(self, obj, value):
        if value <= 0:
            raise ValueError("Число должно быть положительным")
        obj._value = value

    def __get__(self, obj, owner):
        return obj._value

class Order:
    price = PositiveNumber()  # Дескриптор

order = Order()
order.price = 100  # ОК
order.price = -50  # ValueError

Дескрипторы делают код чище, инкапсулируя логику работы с атрибутами.

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

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

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

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