Python is 与 == 的区别

       is== 都是用于比较对象,但比较的是对象的不同属性。对象包括 id(对象的地址)type(对象的类型)value(对象的值) 三个属性,is用于比较对象的id==用于比较对象的value。

例子:

a=2
b=a
c=2
d=2.0

id(a) = 1745072384L
id(b) = 1745072384L
id(c) = 1745072384L
id(d) = 2313208599056L

①a,b,c三个变量的地址,用is判断时,实际比较的是id(a) == id(b) == id(c)。

用==判断时,比较的是 a == b == c。

②为什么a=2,b=a,c=2的地址是一样的?因为python在为数字分配内存时,只为数字内容分配内存,a=2,b=a,c=2,python只对数字5分配一块存储空间,而不是a,b,c各一块存储空间。

is的维度比==广,两个变量的id一致,说明两个变量的所有属性一致,但是两个变量的值一致并不能代表两个变量的其他属性就一致。因此,is的使用范围比==广。

参考文章:

【1】https://www.zhihu.com/question/20179728

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值