'=='比较的是两个对象的值
'是'比较的是两个对象的内存地址(id)
下面我们着重理解‘是’。对于这个,我们需要知道:小整数对象池,大整数对象池,以及实习生机制
小整数池:Python预先创建小整数缓存池(5 ~ 256年),无论创建多少个对象,都是指向同一个地址,这样是为了避免小整数频繁申请和释放内存。
,祝辞祝辞的在一个=3
,
在在在b=3
在在在a是b
真正的
在在在1 + 2等于3
真正的祝辞祝辞的在一个=1.0
引用>
在在在b=1.0
在在在a是b
假
大整数对象池:Python提供了一个可扩展的内存空间,也叫通用整数对象池,谁需要用就给谁用,免去了申请内存。这个空间是一个PyIntBlock结构,是用一个单向列表连接一串内存(块),这个列表由block_list维护,而每个块维护一个整数对象数组(对象),用于存放被缓存的整数对象,即处于一个内存(块)的大整数是同一个对象。
,祝辞祝辞的在def func ():
引用>
…一个=10.1
…b=10.1
…返回一个是b
…
在在在func ()
真正的
a和b的赋值都是由同一个通用整数池项获得的。
实习机制:Python的字符串类型中有一个实习,它是一个记录字符串对象的字典,以此来保证这些字符串在内存中的唯一,相同值的字符串会使用同一个对象。
但是,只对由字母,数字,下划线组成的字符串做实习生处理,而存在其他字符的字符串则不会。
,祝辞祝辞的在一个=' abc '
,
在在在b=' abc '
在在在a是b
真正的祝辞祝辞的在=癮b c”
引用>
在在在b=' ab c '
在在在a是b
假
此外,Python其他的数据类型如字典(东西),列表(列表),集合(组)等,都是创建不同的对象
,祝辞祝辞的在(1、2、3)=
引用>
在在在b=[1, 2, 3]
在在在a是b
,False>的在比;a={a: 1}祝辞祝辞祝辞b={a: 1}祝辞祝辞祝辞,一个是bFalse>的在祝辞
补充一个,下面这种情况是因为上一个[1,2,3]被回收了,在新建(4、5、6)时那片缓存又被用到了
,祝辞祝辞的在id ([1, 2, 3])==id ((4、5、6))
引用>
真正的
在在在id ([1, 2, 3])
36200264 l
在在在(4、5、6)id ()
36200264 l以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
Python '=='及'是'相关原理解析