Python не проверяет, относятся ли два операнда к одной и той же ссылке. Если у них нет одинаковой ссылки на память, python не возвращает True, иначе он возвращает False.
Пример
В следующем примере мы будем использовать оператор is not в операторе If.
a = [5, 8]
b = [5, 8]
c = a
if a is not b:
print('a is not b')
else:
print('a is b')
if a is not c:
print('a is not c')
else:
print('a is c')
Вывод:
a is not b a is c
В приведенном выше примере содержимое a и b одинаково, но a и b – разные объекты, имеющие разное распределение памяти.
Но когда a присваивается c, в c копируется только ссылка, но не все содержимое. Итак, если вы измените содержимое c, то содержимое a также будет изменено, потому что они относятся к одному и тому же списку в памяти. Следовательно, a не c – возвращается False, а a не b – возвращается True.
Оператор IS
Ключевое слово is в Python используется для проверки того, совпадают ли ссылки памяти двух объектов .
Оператор is принимает два операнда и возвращает True, если оба объекта имеют одинаковую ссылку на память, и False, если нет.
В следующем примере мы продемонстрируем использование и функционирование оператор is.
a = [5, 8]
b = [5, 8]
c = a
if a is b:
print('a is b')
else:
print('a is not b')
if a is c:
print('a is c')
else:
print('a is not c')
Вывод:
a is not b a is c
В приведенном выше примере содержимое a и b одинаково, но a и b – разные объекты, имеющие разное распределение памяти.
Но когда a присваивается c, в c копируется только ссылка, но не все содержимое. Итак, если вы измените содержимое c, то содержимое a также будет изменено, потому что они относятся к одному и тому же списку в памяти. Следовательно, a is c – возвращается True, а a b – возвращается False.
Заключение
В этом руководстве Python мы узнали, как использовать ключевое слово is-not и is в Python с помощью примеров программ.