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

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

目录

一、变量与对象

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

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

3、引用所指判断

一、变量与对象

0e9ea2420ef7cd66bf86c2cf32fc9e2f.png

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

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

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

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

e3d5537cdc7668647c82d966b8346b9a.png

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是用来判断两个引用所指的对象是否相同。

整数类型

79cb284c431f6da0b09b70308fa3a641.png

短字符串

b73f3373fb13bc3e9900db39803c4f0f.png

长字符串

fb7b6792d9245f6ddbe062d4802d7bfd.png

列表

8c2002b54c2a90164bcfa994819d0b09.png

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值