python基础id与代码块(缓存机制)

发布于 2021-04-17 05:45 ,所属分类:知识学习综合资讯


目录

id,is,== 用法

代码块:

同一代码块下的缓存机制

不同代码块下的缓存机制(小数据池)




详解

id,is,== 用法

(点击查看大图)



id

id 是内存地址。只要创建一个数据(对象),就会在内存中开辟一个空间,将这个数据临时加载到内存中,这个空间是有一个唯一标识的,标识这个空间的叫做内存地址,也就是这个数据(对象)的 id,可以通过 id() 去获取这个数据的内存地址。


name = 'pamela'print(id(name)) # 2352964961840

(左右滑动查看完整代码)




is

is 是比较两边的内存地址是否相等。如果内存地址相等,那么这两边其实是指向同一个内存地址。

num1 = 1num2 = 1print(num1 is num2) # True

(左右滑动查看完整代码)




==

== 是比较两边的数值是否相等。

num1 = 1num2 = 1print(num1 == num2) # True

(左右滑动查看完整代码)



注:如果内存地址相同,那么值肯定相同,但是如果值相同,内存地址不一定相同。




代码块

python程序是由代码块构造的。块是一个python程序的文本,是作为一个单元执行的。


一个模块,一个函数,一个类,一个文件等都是一个代码块。而作为交互方式输入的每个命令都是一个代码块。

(点击查看大图)



同一代码块下的缓存机制


机制内容

python在执行同一个代码块的初始化对象的命令时,会将初始化的变量与值存储在一个字典中,再遇到新的变量时,会先在字典中检查其值是否已经存在,如果存在,会重复使用这个字典中的值。


满足缓存机制则变量的值在内存中只存在一个,即 id 相同。




适用对象

int(float):所有的数字


bool:True和False


str:几乎所有的字符串




优点

提升性能、节省内存




不同代码块下的缓存机制

(小数据池 / 驻留机制)


机制内容

python在内存中开辟了两个空间,一个空间存储了 -5-256的整数,另一个空间存储了一定规则的字符串,代码中遇到满足条件的数据时,并不会重新创建对象,而是使用已经创建好的对象。




适用对象

int:-5-256的整数


bool:True和False


str:满足规则的字符串




优点

提升性能、节省内存




相关资源