Python-垃圾回收

# 相关地址 https://www.jianshu.com/p/1e375fb40506
# https://www.cnblogs.com/xiugeng/p/10514101.html#_label0_0
# https://blog.csdn.net/xiongchengluo1129/article/details/80462651

# 在python 中使用的引用计数清除为主 标记/分代为附
# 每一个外部对象增加对当前对象的引用时 该对象的引用计数器+1
# 这样的处理方式效率搞
# 但是中间有会出现循环依赖的问题
# 为了解决循环依赖的问题 python中 引入了 标记清除和分代收集 来解决这一问题?

def extend_list(val, l=[]):
    l.append(val)
    return l

list1 = extend_list(10)
list2 = extend_list(123, [])
list3 = extend_list("a")

print(list1)
print(list2)
print(list3)

# [10, 'a']
# [123]
# [10, 'a']
# 通过运行以上代码得出的结果 list1 与list3 相同
# 因为在同一静态文件中 同一方法形参上默认初始化的对象的次数只会一次 即下次调用该方法时该形参初始化参数不会再进行创建 继续沿用最初创建的对象

import sys

#引用之间的查询

# 引用计数+1
l=[]
# 引用计数+1
l1=l
# 引用计数+1
l2=l
# 引用计数+1
l3=l

# 因为是对象引用赋值  同等于 l5=l +1
l5=l1

# 删除l2变量 也等于删除了对[] 的引用  -1
del l2

# 调用print方法 获取l 引用 会临时获得一次引用  这里+1
print(sys.getrefcount(l))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python垃圾回收是指自动检测和清除不再使用的内存的机制。Python会根据一定的规则来决定何时进行垃圾回收。当一个代中的对象占用的内存达到一定的阈值时,Python会触发垃圾回收。这个阈值是动态确定的,可以根据程序的运行情况进行调整。 Python垃圾回收机制是Python内存管理的重要组成部分。它可以自动检测和清除不再使用的内存,从而避免内存泄漏和程序崩溃的问题。为了解决效率问题和循环引用问题,Python引入了分代垃圾回收和弱引用机制。分代垃圾回收机制是基于对象的生命周期的概念,将内存中的对象分为不同的代,每个代的对象有不同的生命周期,从而更有效地进行垃圾回收。通过深入了解Python垃圾回收机制,我们可以更好地理解Python内存管理的工作原理,并编写更高效、健壮的Python代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python垃圾回收机制](https://blog.csdn.net/tangsiqi130/article/details/128041503)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【Python中的垃圾回收机制】](https://blog.csdn.net/weixin_41777118/article/details/130187752)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值