Назад к вопросамЧто выведет эта проверка
MiddleКодЧасто
Что выведет эта проверка is против == для целых?
Предскажите обе строки для этих сравнений целых.
a = 256; b = 256
c = 257; d = 257
print(a is b, c is d)
print(a == b, c == d)Определите вывод и объясните.
True False, затем True True. CPython кэширует малые целые от −5 до 256, поэтому a и b — один объект (is → True); 257 вне этого диапазона, поэтому c и d — разные объекты (is → False). == сравнивает значение и всегда True. Используйте is лишь для тождества (например, x is None).
- Использовать
isдля сравнения значений целых вместо== - Считать, что равные целые всегда один и тот же объект
- Думать, что
==делегирует кis
- Почему CPython кэширует целые от −5 до 256?
- Когда
is— правильный выбор вместо==?