Найти тему

Разница между “is” и “==” в Python. Многие путают операторы сравнения “is” и “==”. Оператор “==” сравнивает значения, в то время как “is” проверяет ссылку на один и тот же объект в памяти.


Итак,

оператор == проверяет равенство значений двух объектов

оператор is проверяет идентичность самих объектов. Его используют, чтобы удостовериться, что переменные указывают на один и тот же объект в памяти!!

Python (CPython) в целях производительности кеширует короткие строки и малые целые числа, поэтому возможны такие казусы:

>>> str1 = 'hello'

>>> str2 = 'hello'

>>> str1 == str2

True

>>> str1 is str2

True

>>>

Но стоит сделать строку длиннее и всё становится ОК:

>>> str1 = 'hello, my crazy world'

>>> str2 = 'hello, my crazy world'

>>> str1 == str2

True

>>> str1 is str2

False
Разница между “is” и “==” в Python. Многие путают операторы сравнения “is” и “==”. Оператор “==” сравнивает значения, в то время как “is” проверяет ссылку на один и тот же объект в памяти.
Около минуты
109 читали