Выбор ответа Middle Типизация обновлено
Any против object
Вопрос
Чем аннотация x: Any отличается от x: object для анализатора?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Any отключает проверки, object пускает лишь общие операции. Any совместим со всем в обе стороны: анализатор перестаёт проверять операции с переменной. object тоже принимает любое значение, но, чтобы вызвать x.upper(), нужно сначала сузить тип через isinstance.
Варианты ответа
- Это синонимы, анализатор их не различает
objectразрешает любые операции, аAnyникакихAnyозначает только встроенные типы вроде int и strAnyотключает проверки,objectпускает лишь общие операцииправильный ответ
Разбор
Any совместим со всем в обе стороны: анализатор перестаёт проверять операции с переменной. object тоже принимает любое значение, но, чтобы вызвать x.upper(), нужно сначала сузить тип через isinstance. Поэтому для «принимаю что угодно» безопаснее object, а Any это аварийный выход.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.