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

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

Протокол дескрипторов в Python — это способ управления доступом к атрибутам объекта через методы __get__, __set__ и __delete__. Дескрипторы позволяют кастомизировать поведение при обращении к атрибутам класса.

Пример:

python
class Descriptor:
    def __get__(self, instance, owner):
        print(f"Getting from {instance} with owner {owner}")
        return instance._value
text
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

text

Дескрипторы бывают:
- **Non-data** (только `__get__`) — например, `@property`
- **Data** (есть `__set__`/`__delete__`) — например, `@property.setter`

Используются в ORM, валидации, ленивых вычислениях.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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