python is引用对象返回结果为何不同,pythonis引用对象,is关键字用于比较对象引
python is引用对象返回结果为何不同,pythonis引用对象,is关键字用于比较对象引
is关键字用于比较对象引用,于是我做了如下操作示例:
a = "a bc"b = "a bc"a is b # Falsea = ba is b # True a="ABC"b="ABC"a is b # True
为什么两次is返回的是不同结果?不是应该都是true吗?
因为string pooling (或叫intern)。is相等代表两个对象的id相同(从底层来看的话,可以看作引用同一块内存区域)。至于为什么"ABC"被intern了而"a bc"没有,这是python解析器实现决定的,可能会变。
这只能说明字符串没有进常量池。毕竟python不经过编译,字符串不进常量池也是可能的。
但是在我的机器上是True。
编橙之家文章,
相关内容
- 获取字典中的url报错No such file or directory什么问题,ur
- object.__setattr__和直接设置Python属性有什么不一样?,
- python中flask celery配置结构出错求解,flaskcelery,脚手架是
- Python beautifulsoup方法得到input中value的方式是什么?,,H
- python代码文件目录打包该怎么写,python怎么写,小白提问
- 请问网上虚拟主机安装依赖包具体操作方法是?,虚拟主
- Flask获得访客用户代理方法,flask获得访客代理,找了f
- pyspider cookies用requests设置cookies成功登录微博报错,py
- 求CentOS中安装Python-PIP exec: python2.7: not found问题解决方法
- Python FTP上传时遇到10060错误是什么意思,python10060,#!/
评论关闭