"12" == 12 ?
Мне просто всегда казалось, что как и в сравнении должно выкинуться TypeError
"The operators <, >, ==, >=, <=, and != compare the values of two objects. The objects do not need to have the same type." https://docs.python.org/3/reference/expressions.html#value-comparisons
Да, спасибо. Я уже посмотрел в исходниках интерпретатора как оператор "==" сравнивает типы, и что для разных типов всегда false по дефолту
Я это понимаю так: выражением '12' == 12 интерпретатору задаётся вопрос: "одинаковы ли значения данных объектов?" Ответ False звучит логичнее Typeerror - так как здесь есть возможность дать ответ, разные типы этому не мешают. Вот сложить '12' + 12 нельзя из-за несовместимости типов, а понять, что значения типов не равны можно.
Обсуждают сегодня