【发布时间】:2016-08-28 06:04:45
【问题描述】:
我刚刚读到“is 运算符的意外结果”,这是因为 Python 缓存数字介于 -5 和 256 之间。
这里讨论过: "is" operator behaves unexpectedly with integers
这里: "is" and "id" in Python 3.5
当我运行其中给出的示例之一时,我在 Python Idle 和 Python IDE 之间得到不同的结果(我使用的是 Jetbrains Pycharm 专业版 - 5.0.4)。
当使用 Python IDLE 时,结果如下:
a = 1000
b = 1000
print (a is b) # prints False
当使用 Pycharm 5.0.4 时,结果如下:
a = 1000
b = 1000
print (a is b) # prints True
这怎么可能? 我已经重新检查过,我的项目的 Python-Interpreter 在这两种情况下都是完全相同的(都是 Python 3.5.1)。 不知道这是否是我做错了什么,我希望有人能解释一下。
编辑:
我知道 'a' 是 'b' == true 如果 id(a) == id(b),并且您可以像 cmets 中提到的一些人一样检查它。也许我应该更清楚一点,我不明白 IDE 怎么会有不同的行为?我认为(请纠正我,因为我似乎错了)IDE 只是一个使用外部编译器/解释器的用户友好环境,这就是为什么这些独立于那些 IDE(例如,pycharm 支持不仅是 Python,我还可以使用 C 编译器或 Java 等运行 Eclipse(所有这些都不是 IDE 的一部分)。
谢谢, 阿隆。
【问题讨论】:
标签: python python-3.x integer pycharm python-idle