_eq()_ 比较对象值
1.同一运算符:is ,is not
区别:is判断的是地址
==判断的是值
注:在-5,256之间数值会缓存,所以id是相同的,不同解释器不同
is
is not
is和==的区别
is用于判断两个变量引用对象是否为同一个,比较对象的地址。
==用于判断变量引用的对象的值是否相等,默认调用对象的_eq_方法。
整数缓存 【-5,256】会被缓存起来,仅在命令行中执行,pycharm保存为文件【-5,无穷大】都会被缓存
is比==效率高 变量和None比较时使用is
同一运算符
is是判断两个标识符是不是引用同一个对象
is not是判断两个标识符是不是引用不同对象
1.is比较两个对象的id值是否相等,是否指向同一个内存地址
2.==比较的是两个对象的内容是否相等,值是否相等
3.小整数对象【-5,256】在全局解释器范围内被放入缓存供重复使用;
4.is 运算符比==效率高,在变量和None进行比较时,应该使用is。
is用于判断地址
==用于判断值
同一运算符:用于比较两个对象的储存单元,实际比较的是对象的地址。
is:判断两个变量引用对象是否为同一个,即比较对象的地址。
==:用于判断引用变量引用对象的值是否相等。
同一运算符
is
is not
== 调用 __eq__()方法
整数缓存问题
同一运算符
同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址。
is 判断两个标识符是不是引用同一个对象
is not 判断两个标识符是不是引用不同对象
is与 == 区别:
is用于判断两个变量引用对象是否为同一个,既比较对象的地址
== 用于判断引用变量引用对象的值是否相等,默认调用对象的_eq_()方法
整数缓存问题
python仅对比较小的整数对象进行缓存,命令行中范围【-5,256】
Pycharm或保存为文件时,范围【-5,任何正整数】
is运算符比==效率高,在变量和None进行比较时,应该使用is
is比较两标识符引用对象的地址是否相同
==比较两标识符value值是否相同
同一运算符:用于比较两个对象的存储单元,实际比较的是对象的地址
is:判断两个标识符是不是引用同一个对象,常用于与None比较
is not:判断两个标识符是不是引用不同对象
is与==的区别:
is用于判断两个变量引用对象是否为同一个,即比较对象的地址
==用于判断两个变量引用的对象的值是否相等
整数缓存问题:
python仅仅对比较小的整数对象进行缓存([-5, 256]),这仅仅是在命令行中执行,而在Pycharm或者保存为文件执行,解释器做了一部分优化([-5, 任意正整数])
同一运算符
同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址。
is 是判断两个标识符是不是引用同一个对象
is not 是判断两个标识符是不是引用不同对象
is 与== 区别:
is 用于判断两个变量引用对象是否为同一个,既比较对象的地址(id)。
== 用于判断引用变量引用对象的值是否相等(value),默认调用对象的__eq__()方法。
a=1000 b=1000
a==b 结果 True
a is b 结果 False #地址不同
整数缓存问题
命令行中Python 仅仅对比较小的整数对象进行缓存(范围为[-5, 256])缓存起来,而并非是所有整数对象。a=10; b=10; a is b 结果是True
而在Pycharm 或者保存为文件执行,结果是不一样的,这是因为解释器做了一部分优化(范围是[-5,任意正整数])。
is 运算符比== 效率高(==调用了方法),在变量和None 进行比较时,应该使用is。