首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python编程中的垃圾回收机制

1.引用计数:

引用计数通俗易懂可以理解为:

变量的命名规范中需要是这种格式:key=value,key称为变量名,value是变量的数值。

引用计数就是指,【最后使用】value的key的个数。

【最后使用】这个值的变量的个数就是引用计数的最终结果数值。

2.Python垃圾回收主要以引用计数为主,分代回收为辅

『引用计数法』的原理是:每个对象维护一个ob_ref字段,用来记录该对象当前被引用的次数,每当新的引用指向该对象时,它的引用计数ob_ref加1,每当该对象的引用失效时计数ob_ref减1,一旦对象的引用计数为0,该对象立即被回收,对象占用的内存空间将被释放。

对象被创建  a=14

对象被引用  b=a

对象被作为参数,传到函数中   func(a)

对象作为一个元素,存储在容器中   List=

  与上述情况相对应,当发生以下四种情况时,该对象的引用计数器-1

当该对象的别名被显式销毁时  del a

当该对象的引别名被赋予新的对象,   a=26

一个对象离开它的作用域,例如 func函数执行完毕时,函数里面的局部变量的引用计数器就会减一(但是全局变量不会)

将该元素从容器中删除时,或者容器被销毁时。

3.通俗易懂如下所示:

因为每个变量都有对应的值,所以没有值的变量【a 前】就是Python眼中的垃圾,就会被内存给清理掉!!

a=10 前

b=a

a=20 后

a的值被b替换,然后a又重新赋值,那么之前的a就会变成Python眼中的垃圾,被内存清理掉!!!!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191216A0RNIS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券