【发布时间】:2021-03-10 05:19:56
【问题描述】:
当我遇到奇怪的不一致时,我正在学习 python 元组。这段代码:
x = (1,2)
y = (1,2)
print(x is y)
这在 shell 中给出了 False,但在 IDLE 中给出了 True。有什么原因吗?
【问题讨论】:
-
他们都使用相同版本的 Python 吗?
-
不错的菲茨。我可以确认我看到了相同的差异。蟒蛇 3.8。奇怪
-
Python没有承诺关于两个相等(深度)不可变值是否将由同一个对象表示。某些情况得到优化。有些没有。此类优化不是语言定义的一部分,不应依赖。
-
试试 ==。还会发生吗?
-
@Epsi95 是一种特殊的 CPython 优化,可以缓存小的
int对象
标签: python python-3.x memory-management tuples