关于python == 与 is 的赋值实验

== :判断数值上是否相等 

is  :是判断指向同一块内存空间

通过使用两个方法比较,发现在数组和常量上使用结果有些不同,我进行了以下实验,可以更好的帮助我们理解内存空间

实验一:比较数值和内存空间在想象之中,很好理解

关于python == 与 is 的赋值实验

实验二:下面我们把数组改为常数,按道理is方法应该输出false,但是这里内存空间底层机制便是:如果一个变量发现在内存空间已经有这个值存在,便使这个变量指向已存在的值的地址(不包括数组,上图已实验过)

关于python == 与 is 的赋值实验

实验三:以下实验可以看到通过b=a,两数组指向同一块内存空间,并且对列表中的一个元素改变,另一列组会做出相同改变,因为整个列表地址没有改变

关于python == 与 is 的赋值实验
若对b重新赋值,则需要重新开辟新地址
关于python == 与 is 的赋值实验

实验四:我们将数组改为变量,发现通过a=b,指向同一块内存后,再改变其中一个值,a和b并不是跟着一起变,而是并开辟了新的内存空间
关于python == 与 is 的赋值实验