Что такое протокол дескрипторов

Python Middle Без компании
Что такое протокол дескрипторов
Ответы
Протокол дескрипторов в Python — это способ управления доступом к атрибутам объекта через методы `__get__`, `__set__` и `__delete__`. Дескрипторы позволяют кастомизировать поведение при обращении к атрибутам класса. Пример: ``` class Descriptor: def __get__(self, instance, owner): print(f"Getting from {instance} with owner {owner}") return instance._value def __set__(self, instance, value): print(f"Setting {value} to {instance}") instance._value = value class MyClass: attr = Descriptor() # Дескриптор obj = MyClass() obj.attr = 42 # Вызовет __set__ print(obj.attr) # Вызовет __get__ ``` Дескрипторы бывают: - **Non-data** (только `__get__`) — например, `@property` - **Data** (есть `__set__`/`__delete__`) — например, `@property.setter` Используются в ORM, валидации, ленивых вычислениях.