Python变量赋值原理(不可变性、缓存机制)分析

发布时间:2019-12-22编辑:脚本学堂
本文介绍下,在python编程中的变量赋值原理,包括不可变性与缓存机制的介绍,有兴趣的朋友参考学习下。

本节内容:
python变量赋值

一,python变量定义
Python中几种数据类型具有不可变性:数字,字符串,元组。
不可变性的含义即是无法直接将储存在内存中的数据进行覆盖修改。

变量的类型通过第一次赋值来实现定义,实际上变量名是一个指针,指向内存中的值,当变量改变时,直接改变指针,同时回收之前指向的内存(实际上小整数和字符串具有缓存机制,这种情况下小整数和字符串占用的区域会被缓存起来,方便下次快速调用)。

下列情况中:
 

复制代码 代码示例:
>>a = 3
>>b = a
>>a = a + 2

虽然a和b同时指向一片内存,但b的值并不会被修改,因为整数的不可变性,使得a累加后指向了另外一片内存,而b指向的3并没有改变。

一,缓存机制,例如:
 

复制代码 代码示例:
>>L=[1,2,3]
>>M=[1,2,3]
>>L == M
True
>>L is M
False
>>X=42
>>Y=42
>>X == Y
True
>>X is Y
True