同一运算符
is 是判断两个标识符是不是引用的同一个对象
is not 是判断两个标识符是不是引用的不同的对象
== 是表示引用变量引用对象的值是否相等
同一运算符
is 是判断两个标识符是不是引用的同一个对象
is not 是判断两个标识符是不是引用的不同的对象
== 是表示引用变量引用对象的值是否相等
同一运算符
实际比较的是对象的地址
is 与 == 的区别:
is是比较两个变量引用的对象是否为同一个
==是比较引用变量引用对象的值是否相等
is not
python整数缓存范围【-5,256】
同一运算符
用于比较两个对象的存储单元,实际比较的是对象的地址
is与==区别,
is 用于判断两个变量引用对象是否为同一个,即比较对象地址( is not 判断两个标识符是否引用不同对象)
==用于判断引用变量对象的值是否相等,默认调用对象的_eq_()方法
整数缓存问题
Python仅仅对比较小的整数对象进行缓存(范围为[-5,256])缓存下来,而非所有整数。在Pycharm或者保存为文件执行,结果又不一样,范围是[-5,任意正整数]
注意is是是否是同一个对象,==是判断值
注意命令和文件里的区别
is用于判断两个变量引用对象是否为同一个,既比较对象的地址。
==用于判断引用变量引用对象的值是否相等,默认调用对象的__eq__()方法。
is
比较同一对象
==
比较value
a =10
b=10
a == b
True
a is b
True
True
True
a = 1000
b = 1000
a == b
True
a is b
False
is判断的是否为同一个I'd
== 用于判断对象的值是否相等。
也可以用 _eq_()
由于缓存的问题 ,在数字-5 ,256之间,I'd相同
保存为文件后,运行后会显示-5,任意正整数为相同I'd
比较值的时候用。==
比较对象的时候用。is
同一运算符:
同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址
is 与==的区别:
is判断的是两个变量引用对象是否为同一个,即比较对象的地址;
==用于判断引用对象的阿值是否相等
整数缓存的问题:
python会将[-5,256]范围内的整数缓存起来,则在这个范围内数,a = 5 ,b = 5. a is b 为真,默认这两个数的地址相同。而在pycharm里面的范围是[-5,任意正整数]
同一运算
is,is not 判断两个对象的内存地址是否一样
==判断两个对象值是否一样
两个对象可以值一样,地址不一样
由于整数缓存问题,赋值一样并在为-5到任意大整数的两个对象地址一样
is 判断是不是同一个对象
=比较对象
python会对【-5,256】范围内数字进行缓存