все 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Сообщить о неточности