Python中is和==的区别

Python中的对象包含三要素:id、type、value。
  • id用来唯一标识一个对象,映射堆内存地址
  • value是对象的值。
  • type标识对象的类型,

is判断的是a对象是否就是b对象,是通过id来判断的。也就是内存地址。其实本质就是判断id(a)==id(b),当然也可以使用==判断。但是必须是id(a)==id(b) 而不是a==b

 a = [1,2,3]
 b = [1,2,3]   
 a is b     #false 
 id(a)==id(b) # true

 a,b = 3,4
 a is b     #false
 id(a)==id(b) # false

==判断的是a对象的值是否和b对象的值相等,是通过value来判断的。

 a = [1,2,3]
 b = [1,2,3]   
 a == b     #true

type标识对象的类型,

 a = [1,2,3]
 b = [1,2,3]   
 type(a) == type(b)  #true

  type(a) is type(b) #true
 ''' 当然因为type()返回值是一个类型。也可以使用 is 完成。
 <type 'type'>          #type 类型
返回值本身也是有类型的,它是type类型。    
'''
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值