总结:
- =:是赋值
- ==:是判断是否相等,比较的是对象的值,返回True或False
- is:比较的是对象的内存地址,即is比较的是两个对象的id值是否相同。is 运算符比 == 效率高,在变量和None进行比较时,应该使用 is。
注意:python的缓存机制,-5~256范围内的数内存地址被缓存。这样,每次你试图创建一个 -5 到 256 范围内的整型数字时,Python 都会从这个数组中返回相对应的引用,而不是重新开辟一块新的内存空间。
>>> a = 1 >>> b = 1 >>> a == b True >>> a is b True
>>> a = 257 >>> b = 257 >>> a == b #a,b的值相等,内存地址不相等 True >>> a is b False
>>> id(a)
57320560
>>> id(b)
57323248
Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)