为了账号安全,请及时绑定邮箱和手机立即绑定

python is操作的疑问

python is操作的疑问

萧十郎 2019-04-08 11:16:45
is关键字用于比较对象引用,于是我做了如下操作示例:a="abc"b="abc"aisb#Falsea=baisb#Truea="ABC"b="ABC"aisb#True为什么两次is返回的是不同结果?不是应该都是true吗?
查看完整描述

2 回答

?
米脂

TA贡献1836条经验 获得超3个赞

因为stringpooling(或叫intern)。
is相等代表两个对象的id相同(从底层来看的话,可以看作引用同一块内存区域)。
至于为什么"ABC"被intern了而"abc"没有,这是python解析器实现决定的,可能会变。
                            
查看完整回答
反对 回复 2019-04-08
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

这只能说明字符串没有进常量池。毕竟python不经过编译,字符串不进常量池也是可能的。
但是在我的机器上是True。
                            
查看完整回答
反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 387 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号