Python Glossary English

все Python 3Условный операторконструкция

is / is not

тождество

Операторы тождества. Проверяют, указывают ли две переменные на ОДИН объект в памяти. Используйте is/is not для проверки None, True, False — не ==.

Синтаксис

a is b | a is not b

CPython заранее кеширует маленькие целые (примерно от -5 до 256) и некоторые строки, поэтому is для них может «случайно» вернуть True — а для больших чисел та же проверка внезапно даст False. Отсюда правило: is только для None и других синглтонов, а обычные значения (числа, строки, списки) сравнивайте через ==.

Примеры

print(None is None)  # → True
x = None
print(x is None)  # → True (правильная проверка)
print(x == None)  # → True (работает, но стиль PEP8 — is)
a = [1, 2]; b = a
print(a is b)  # → True (одна ссылка)
c = [1, 2]
print(a is c)  # → False (разные объекты с одинаковым значением)
print(a == c)  # → True (равные по значению)

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности