Python内存管理机制 之 变量与对象

系统 637 0

参考链接:https://www.cnblogs.com/geaozhang/p/7111961.html#lajihuishou

目录

一、变量与对象

1、变量,通过变量指针引用对象

2、对象,类型已知,每个对象都包含一个头部信息(头部信息:类型标识符和引用计数器)

3、引用所指判断


一、变量与对象

Python内存管理机制 之 变量与对象_第1张图片

1、变量,通过变量指针引用对象

  变量指针指向具体对象的内存空间,取对象的值。

2、对象,类型已知,每个对象都包含一个头部信息(头部信息:类型标识符和引用计数器)

注意:变量没有类型,类型属于对象,因为变量引用了对象,所以变量随对象的类型

Python内存管理机制 之 变量与对象_第2张图片

id() 是python的内置函数,用于返回对象的身份,即对象的内存地址。

下面的代码很好的解释上面两张图片

            
              # 变量没有类型,类型属于对象,因为变量引用了对象,所以变量随对象的类型
import sys
a = 123
b = 123
>>print(id(a))
1546779568
>>print(id(b))
1546779568
>>print(sys.getrefcount(a))
15
>>print(id(a) == id(b))
True

            
          

3、引用所指判断

通过 is 进行引用所指判断,is是用来判断两个引用所指的对象是否相同。

整数类型

Python内存管理机制 之 变量与对象_第3张图片

短字符串

长字符串

列表

Python内存管理机制 之 变量与对象_第4张图片

  1、Python缓存了整数和字符串,因此每个对象在内存中只存有一份,引用所指对象就是相同的,即使使用赋值语句或非赋值语句,也只是创造新的引用,而不是对象本身;

  2、Python没有缓存列表及其他对象,可以由多个相同的对象,可以使用赋值语句创建出新的对象。

 

 

 

 

 

 

 

 

 

 

 

 

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论