Выбор ответа Middle Стандартная библиотека спрашивают часто обновлено
Naive и aware datetime
Вопрос
Что произойдёт при сравнении datetime.now() < datetime.now(timezone.utc)?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: TypeError: нельзя сравнивать naive и aware. datetime.now() без аргумента даёт naive-объект без таймзоны, а с timezone.utc aware.
Варианты ответа
- Сравнение пройдёт, naive автоматически считается UTC
TypeError: нельзя сравнивать naive и awareправильный ответ- Сравнение пройдёт, naive считается локальным временем
- Вернётся всегда
False, зоны не совпадают
Разбор
datetime.now() без аргумента даёт naive-объект без таймзоны, а с timezone.utc aware. Python отказывается сравнивать их на порядок (TypeError: can't compare offset-naive and offset-aware datetimes), потому что непонятно, в какой зоне naive. Правило: внутри системы только aware-время в UTC.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.