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