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

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