同一运算符
同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址。
is:判断两个两个标识符是不是引用同一个对象
is not:判断两个标识符是不是引用不同对象
is和==区别
is用于判断两个变量引用对象是否为同一个,既比较对象的地址
==用于判断引用对象引用变量的值是否相等,默认调用对象的_eq_()方法
运行图
整数缓存问题
Python在命令行中执行时仅仅对比较小的整数对象进行缓存(范围是[-5,256]),并非所有的整数(如上第二张图可看出);
在pycharm或者保存为文件执行时,结果又不一样,解释器做出了优化范围是[-5,任意正整数]在Python 3.6.5shell版本中可看出
但是我用的是Python3.10.2shell版本范围又不一样了,随意输入的数都行,解释器优化的更多了,对于一些固定的数都可以缓存后面可以直接使用
以上相关内容仅为个人理解,如有错误欢迎各位大神留言指出,谢谢!