python同一运算符和整数缓存
(1)

同一运算符

运算符描述
is判断两个标识符是否引用同一对象
is not判断两个标识符是否引用不同对象

  从描述上来看,is和is not的作用好像跟==,!=的功能相似,但是是有很大的区别的,is,is not用来判断两个变量引对象是不是同一个,所以他们比较的是地址,而 ==,!=是用来判断变量引用的值是否相等,默认情况调用的是对象的__eq__()方法

在这里插入图片描述  这张图中a,b的值都一样,但是两个变量的地址不同,所以得出的结果才会如上图。

整数缓存问题

  Python仅仅对比较小的整数对象进行缓存(范围为[-5, 256])缓存起来,而并非是所有整数对象。即在这个范围内取同样的值他们的id是一样的。需要注意的是,这仅仅是在命令行中执行,。具体含义如图
在这里插入图片描述
  而在Pycharm或者保存为文件执行,结果是不一样的,这是因为解释器做了一部分优化(范围是[-5,任意正整数])即:
在这里插入图片描述  它们的运行结果为:
在这里插入图片描述

本文为作者valive发布,未经允许禁止转载!
上一篇 下一篇
评论
评论已关闭 >_<

评论已关闭