Back to questions
Junior — Middle
67
Объясните назначение и работу метода __set__() в классе-дескрипторе Python
Answer from AI
sobes.tech AI
Метод __set__() в классе-дескрипторе Python отвечает за перехват присваивания значения атрибуту объекта. Когда у объекта, у которого атрибут реализован через дескриптор, происходит присваивание, вызывается именно этот метод.
Он принимает три параметра:
self— экземпляр дескриптора,instance— объект, у которого устанавливается атрибут,value— новое значение.
Пример использования:
class Descriptor:
def __set__(self, instance, value):
print(f"Устанавливаем значение {value} для {instance}")
instance._value = value
class MyClass:
attr = Descriptor()
obj = MyClass()
obj.attr = 42 # вызовет Descriptor.__set__(obj, 42)
Таким образом, __set__() позволяет контролировать процесс установки значения, например, для валидации, логирования или управления доступом.