python基础id与代码块(缓存机制)
发布于 2021-04-17 05:45 ,所属分类:知识学习综合资讯
目录
id,is,== 用法
代码块:
同一代码块下的缓存机制
不同代码块下的缓存机制(小数据池)
详解
id,is,== 用法
(点击查看大图)
id
id 是内存地址。只要创建一个数据(对象),就会在内存中开辟一个空间,将这个数据临时加载到内存中,这个空间是有一个唯一标识的,标识这个空间的叫做内存地址,也就是这个数据(对象)的 id,可以通过 id() 去获取这个数据的内存地址。
name = 'pamela'
print(id(name)) # 2352964961840
(左右滑动查看完整代码)
is
is 是比较两边的内存地址是否相等。如果内存地址相等,那么这两边其实是指向同一个内存地址。
num1 = 1
num2 = 1
print(num1 is num2) # True
(左右滑动查看完整代码)
==
== 是比较两边的数值是否相等。
num1 = 1
num2 = 1
print(num1 == num2) # True
(左右滑动查看完整代码)
注:如果内存地址相同,那么值肯定相同,但是如果值相同,内存地址不一定相同。
代码块
python程序是由代码块构造的。块是一个python程序的文本,是作为一个单元执行的。
一个模块,一个函数,一个类,一个文件等都是一个代码块。而作为交互方式输入的每个命令都是一个代码块。
(点击查看大图)
同一代码块下的缓存机制
机制内容
python在执行同一个代码块的初始化对象的命令时,会将初始化的变量与值存储在一个字典中,再遇到新的变量时,会先在字典中检查其值是否已经存在,如果存在,会重复使用这个字典中的值。
满足缓存机制则变量的值在内存中只存在一个,即 id 相同。
适用对象
int(float):所有的数字
bool:True和False
str:几乎所有的字符串
优点
提升性能、节省内存
不同代码块下的缓存机制
(小数据池 / 驻留机制)
机制内容
python在内存中开辟了两个空间,一个空间存储了 -5-256的整数,另一个空间存储了一定规则的字符串,代码中遇到满足条件的数据时,并不会重新创建对象,而是使用已经创建好的对象。
适用对象
int:-5-256的整数
bool:True和False
str:满足规则的字符串
优点
提升性能、节省内存
相关资源