当退出 Python 时是否释放所有内存分配?

答案是:否定的。
那些具有对象循环引用或者全局命名空间引用的变量,在 Python 退出是往往不会被释放
另外不会释放 C 库保留的部分内容。

先给大家普及一波关于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语句会删除对象的一个引用
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值