==
和is
Python中经常用的检查两个玩意儿是否相等的两个操作:==
和is
,两个的区别还是很大的,我们放在一块儿比较一下:
==
用来比较两个对象的值,具体来说就是比较两个数据是否相等,而is
用来测试两个对象标识是不是一样,通常来说,我们更关注对象的数据是否相等,而标识相对来说不那么重要,因此在使用频率上有很大差距。
但是值得注意的一点是,在比较变量和单例值时,应该使用is
,或者说,常用is
来检查变量绑定的值是不是None,推荐的写法是:x is None
;
在运行速度上两个也有点区别,is
的速度比==
要快一点,因为它不需重载(换言之,==
是可以重载的)。测试元素是否相等在一门实验室语言中是非常重要的一种操作,尤其是使用嵌套或者大型集合,很可能会涉及很大数据量的元素检查问题,所以,我们应该选择正确的操作,而且,必要的时候,可以自己重载==
运算符;
多说两句
Mojave的新版本,切换输入法就是坨*,几百来字敲得我心态爆炸——活该你早晚成第二名。
关于标识性变量,以后的很多知识点(垃圾回收、浅复制etc)要依托这个思想,所以,还是要深入理解上一节。
网友评论