同一运算符

同一运算符比较两个对象的存储单元实际上是比较对象的地址

运算符 描述
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