首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pycharm控制台-当代码作为块复制到控制台时,不同的变量似乎是同一个对象。

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

Stack Overflow用户
提问于 2016-05-17 17:07:02
回答 1查看 34关注 0票数 0

我正在使用PyCharm 2016.1.3社区版。

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

代码语言:javascript
复制
>>> a = 1000
b = 1000
print (a is b)
True

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

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

代码语言:javascript
复制
>>> a = 1000
>>> b = 1000
>>> print (a is b)
False

在第一种情况下,PyCharm会在这里进行某种优化吗?

谢谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-17 18:26:47

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

请注意,这在任何意义上都不是一个bug。它被称为interning,Python使用小整数(用5替换1000,在这两种情况下都会得到True )和字符串文本来完成它。其他语言(如Java )也会这样做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37282394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档