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类型。
'''