🐍 is vs == – в чём разница и почему это важно
Очень частая ошибка в Python:
if a is b:
...
Когда на самом деле нужно было:
if a == b:
...
Что делает ==?
== сравнивает значения объектов.
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True
Значения одинаковые → True.
Что делает is?
is проверяет, являются ли это одним и тем же объектом в памяти.
print(a is b) # False
Два разных списка → разные объекты.
Классический пример, который путает новичков
x = 256
y = 256
print(x == y) # True
print(x is y) # True 😳
Когда is использовать ПРАВИЛЬНО?
👉 Для проверки на None:
if value is None:
...
👉 Для сравнения с True / False — никогда:
# плохо
if flag is True:
# правильно
if flag:
Краткое правило
• == → сравнение значений
• is → проверка идентичности объекта
• is почти всегда нужен только для None