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 b
为True
需要注意的是,整数大了也不行,整数is
成立的最大数在我的机器(ubuntu 64bit)上是256,257的时候就是False
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。