同一运算符
同一运算符比较两个对象的存储单元实际上是比较对象的地址
运算符 | 描述 |
is | is是判断两个标识符是不是引用了同一个对象 |
is not | is not 是判断两个标识符是不是引用了不同的对象 |
is 与 ==的区别
is判断两个变量的引用对象是否为同一个,即比较对象的地址
==用于判断引用变量的引用对象的值是否相等,默认调用对象的_eq_()方法
is的运算效率比==高,在变量和none进行比较时,优先使用is
整数缓存问题
Python仅仅对比较小的数进行缓存,(范围[-5,256]),而并非是所有整数对象。。需要注意的是,这仅仅在命令行中执行,而在Pychrm中执行,结果是不一样的,,这是因为解释器做了部分优化([-5,任意整数])
1 >>> a = 1000 2 >>> b = 1000 3 >>> a == b 4 True 5 >>> a is b 6 False 7 >>> id(a) 8 62714784 9 >>> id(b) 10 62714816 11 >>> a=10 12 >>> b=10 13 >>> a is b 14 True