Выбор ответа Middle Декораторы обновлено
functools.total_ordering
Вопрос
Что делает декоратор класса @functools.total_ordering?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Достраивает сравнения по eq и одному из lt и т.п. Достаточно определить eq и, например, lt, и totalordering достроит le, gt, ge.
Варианты ответа
- Достраивает сравнения по
__eq__и одному из__lt__и т.п.правильный ответ - Сортирует атрибуты класса по алфавиту для
__repr__ - Делает экземпляры неизменяемыми и хешируемыми по полям
- Генерирует
__init__и__repr__по аннотациям класса
Разбор
Достаточно определить __eq__ и, например, __lt__, и total_ordering достроит __le__, __gt__, __ge__. Это пример декоратора класса, который модифицирует и возвращает класс. Генерацию __init__ делает @dataclass, неизменяемость даёт @dataclass(frozen=True).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.