Вопрос: что напечатает Python?
one = get_value() # type: int
two = one + 1 - 1
print(one is two)
Напечатает True
.
Или False
.
Если число в промежутке [-5..256]
— будет True
.
Что интересно, эффект проявляется не только с константами, но и с вычисленными выражениями. То есть, если где-то вычислилось число 256, то это будет одно 256 на всех. Питон кэширует небольшие целые значения.
Кажется это однажды всплыло на работе. Какого-то конкретного негативного влияния на код не помню, и сейчас не придумал, но может он и есть. В целом, красоты такая неконсистентность, конечно, не добавляет.
> python --version
Python 3.11.4
2024.06.11 in python