Разница между “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
Около минуты
26 апреля 2022
109 читали