python中的is

Python中的对象包含三要素:id、type、value

其中id用来唯一标识一个对象,当我们使用is来进行判断两者是否相等时,就是使用其id值在进行比较

None is None
# True

a = 1; b = 1
a is b
# True

a = "myX"; b = "myX";
a is b
# True

a = 1.8; b = 1.8
a is b
# False

a = 3L; b = 3L
a is b
# False

a = 1+2j; b = 1+2j
a is b
# False

a = (1, 2); b = (1, 2)
a is b
# False

a = [1, 2]; b = [1, 2]
a is b
# False

a = {"male":1}; b = {"male": 1}
a is b
# False

https://gist.github.com/quietin/6ce45f460c31f6212f8d
python中一切都是对象,其中字符串和整数都是不可变对象,字符串存储在字符串对象池中,整数则存储在整数对象池。
如上代码所示,a和b均会指向"myX"所占的内存空间,所以其id值相同,a is bTrue

需要注意的是,整数大了也不行,整数is成立的最大数在我的机器(ubuntu 64bit)上是256,257的时候就是False

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值