Pycharm Python控制台 - 当代码作为块复制到控制台时,不同的变量似乎是同一个对象

时间:2016-05-17 17:07:02

标签: python pycharm

我正在使用PyCharm 2016.1.3社区版。

当下面的代码作为块复制到python控制台时,变量' a'和' b'是相同的对象

>>> a = 1000
b = 1000
print (a is b)
True

>>> id(a)
36079236
>>> id(b)
36079236

但在这种情况下,当逐行输入代码时,两个变量都是不同的对象

>>> a = 1000
>>> b = 1000
>>> print (a is b)
False

在第一种情况下,PyCharm在这里做了某种优化吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

不,如果您将该块粘贴到文件中并运行python thefile.py,您将看到True,但在普通的Python控制台中,您将获得False自行运行每一行。我的猜测是,当一个代码块被一次编译时,常见的常量被映射到同一个对象,但是当交互式解释器分别接收到这些行时,它们就不会发生。

请注意,这不是任何意义上的错误。它被称为实习,而Python用小整数(用两个替换1000和你在两种情况下都得到True)和字符串文字也是如此。其他语言如Java也是如此。