网站如何设计方案,网页制作基础教程dw,网站开发报价范围,龙岩网红街关于Python中的内存释放问题
首先就不得不提到Python解释器在何种情况下会释放变量的内存。Python引用了内存计数这一简单的计数来控制。
python学习网#xff0c;大量的免费python视频教程#xff0c;欢迎在线学习#xff01;
下面是引用计数的知识#xff1a;
1) 增加引用…
关于Python中的内存释放问题
首先就不得不提到Python解释器在何种情况下会释放变量的内存。Python引用了内存计数这一简单的计数来控制。
python学习网大量的免费python视频教程欢迎在线学习
下面是引用计数的知识
1) 增加引用计数 当对象被创建并将其引用赋值给变量时该对象的引用计数被设置为1。
对象的引用计数增加的情况
对象被创建x 3.14
另外的别名被创建y x
被作为参数传递给函数新的本地引用foobar(x)
成为容器对象的一个元素myList [123, x, xyz]
2) 减少引用计数 对象的引用计数减少的情况
一个本地引用离开了其作用范围。如foobar()函数结束时
对象的别名被显式销毁del y
对象的一个别名被赋值给其他对象x 123
对象被从一个窗口对象中移除myList.remove(x)
窗口对象本身被销毁del myList
3) del语句 Del语句会删除对象的一个引用它的语法如下del obj[, obj2[, ...objN]]
例如在上例中执行del y会产生两个结果
从现在的名称空间中删除y
x的引用计数减1
下面我们来试验一下import sys
x 3.14
print(原始引用值, sys.getrefcount(x))
y x
print(被y引用后, sys.getrefcount(x))
x 4.0
print(重新赋值后, sys.getrefcount(x))
del y
print(删除y引用后, sys.getrefcount(x))原始引用值 3
被y引用后 4
重新赋值后 3
删除y引用后 3
当一个变量的引用计数为0的时候就会被解释器回收。当然在交互模式下内存不会马上释放重新启动解释器就会释放了。