python中is和==的区别

python中is和==的区别

id():在内存中存储的位置
type():变量的类型

==和is都要比较value值和数据类型,而不同的是is除了比较这两个以外还要比较id是否相等(即是否用一段内存地址空间)

==:type value
is:type value id

举例1:
a和b类型不同,所以a== b返回False
当a和b类型相同,value值相等时,a == b
当a和b共用一块内存地址空间时(即id(a)=id(b)),a is b

python中is和==的区别
举例2:
li和li1类型相同且id相同时:li1== li;li1 is li
li和li2类型相同但id不相同时:li2 == li;而li2 is li为false

python中is和==的区别