Python 内存管理及变量计数引用

1、内存管理相关知识

1、变量无须事先声明,也不需要指定类型,这是Python作为动态语言的特性
2、Python编程中,一般无须关心变量的存亡,一般也不用关心内存的管理
3、Python使用引用计数记录所有对象的引用数
	3.1 当对象引用数变为0,它就可以被垃圾回收 GC
	3.2 计数增加
		3.2.1 赋值给其它变量就增加引用计数
		3.2.2 实参传参
	3.3 计数减少
		3.3.1 函数运行结束时,局部变量就会自动销毁,对象引用计数减少
		3.3.2 变量被赋值给其它对象
4、有关性能的时候,就需要考虑变量引用问题,但是该释放内存还是尽量不释放,需要看具体需求

2、示例

import sys

x = []
print(1, 'count(x) =', sys.getrefcount(x))

y = x
print(2, 'count(x) =', sys.getrefcount(x), 'count(y) =', sys.getrefcount(y))

x  = 5 # 注意字面常量,字面常量无法被修改
print(3, 'count(x) =', sys.getrefcount(x), 'count(y) =', sys.getrefcount(y))

z= 5
print(4, 'count(x) =', sys.getrefcount(x), 'count(y) =', sys.getrefcount(y), 'count(z) =', sys.getrefcount(z))
1 count(x) = 2
2 count(x) = 3 count(y) = 3
3 count(x) = 632 count(y) = 2
4 count(x) = 633 count(y) = 2 count(z) = 633
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值