Встречается на собеседованиях • сегодня
Работал ли с дескрипторами в Python
Да, работал. Дескрипторы — это мощный механизм управления доступом к атрибутам класса. Они реализуются через протокол дескрипторов (__get__, __set__, __delete__). Часто используются для валидации, ленивых вычислений или создания свойств (property).
Пример дескриптора для валидации возраста:
python
class AgeValidator:
def __set__(self, instance, value):
if not 0 <= value <= 120:
raise ValueError("Invalid age")
instance.__dict__['age'] = value
text
def __get__(self, instance, owner):
return instance.__dict__.get('age')class Person:
age = AgeValidator()
p = Person()
p.age = 25 # OK
p.age = 150 # ValueError
text
Основные типы дескрипторов:
- Non-data дескрипторы (только `__get__`)
- Data дескрипторы (`__get__` + `__set__`/`__delete__`)
Встроенные примеры: `@property`, `@classmethod`, `@staticmethod` реализованы через дескрипторы.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы