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

Что такое метод __set__() дескриптора в Python

Метод __set__() — часть протокола дескрипторов, вызывается при попытке присвоения значения атрибуту, управляемому дескриптором. Принимает три параметра: self (экземпляр дескриптора), instance (экземпляр владельца) и value (присваиваемое значение).

Пример:

python
class Descriptor:
    def __set__(self, instance, value):
        if value < 0:
            raise ValueError("Значение не может быть отрицательным")
        instance.__dict__[self.name] = value

class MyClass:
    number = Descriptor()

Нюансы:

  1. Работает только для дескрипторов уровня класса (не экземпляра)
  2. Если не реализован, попытка присвоения вызовет AttributeError
  3. Часто используется для валидации или преобразования данных перед сохранением
  4. Для работы с __dict__ владельца часто используют __set_name__ для сохранения имени атрибута
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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