包含部分个人理解,如有错误,请联系指正,感谢!!
参看学习了python 中 is 和 == 的区别,推荐阅读!
一、区别简述:
①“==” 比较操作符
==是标准操作符中的比较操作符,比较两个对象的value(值)是否相等。
②“is” 同一性运算符
用来比较对象是不是同一个,即比较唯一标识符(id)
二、解释补充:
①python一切皆对象,包括可变数据类型变量List(列表)、Dictionary(字典)、Set(集合),不可变数据类型变量*Number(数字)、String(字符串)、Tuple(元组)*等。
②python中对象三要素,id(身份标识)、type(数据类型)、value(值)。
③在可变数据类型中,value相同的两个变量,可能拥有不同的id,本身不是同一个对象。
当然存在多个变量指向同一个可变类型对象的情况,这时候id必然是相同的。
④在不可变数据类型中,值相同变量所指向的对象相同。
(大概是个人看法,在python中部分int类型的数据,在python程序开始的时候就已经分配了内存空间,其他的应该是第一次出现的时候分配了内存空间,而后所有的与之相同的值的不可变类型的变量都指向该对象。)
⑤在python中id(a)
可以显示变量的对象的id。type(a)
可以看到对象的数据类型。