【问题标题】:Pycharm Python console - different variables appeared to be the same object when code copied to console as blockPycharm Python控制台 - 当代码作为块复制到控制台时,不同的变量似乎是同一个对象
【发布时间】:2016-09-13 22:10:17
【问题描述】:

我正在使用 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 在第一种情况下做了某种优化?

感谢您的帮助

【问题讨论】:

    标签: python pycharm


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-06-25
      • 2015-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多