Ошибки при сравнении объектов с разными типами



Разберем коварную ловушку Python — поведение операторов сравнения при работе с объектами разных типов. Это может стать источником неожиданных ошибок в коде:



Когда вы сравниваете значения с None или между собой, Python иногда ведет себя иначе, чем вы ожидаете:

print(5 > None)  # TypeError: '>' not supported between instances of 'int' and 'NoneType'




В старых версиях Python (2.x) подобные операции могли возвращать результат, но в Python 3 они выбрасывают ошибку. Однако есть еще подводные камни:

print(None == 0)  # False

print(None < 1) # TypeError




Решение: Явная проверка на None

Чтобы избежать ошибок, всегда сравнивайте с None через оператор is:

value = None

if value is None:

print("Value is None") # Безопасная проверка




Сравнение объектов разных типов иногда работает, но результат может быть нелогичным:

print([1, 2] > "abc")  # TypeError в Python 3




🔥 Используйте is для проверки на None, избегайте операторов < и > для объектов разных типов, чтобы исключить непредсказуемые ошибки.



👉 Python Ready | #практика