鱼C论坛

 找回密码
 立即注册
查看: 1315|回复: 3

[技术交流] 从结点删除看Python的垃圾回收

[复制链接]
发表于 2018-4-11 14:03:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如果有人对Python的GC比较了解的。
========================
一个单链表的结点删除,很容易实现——把前后两个结点相连接,跳过中间结点即可。
在C语言中,我们使用free释放掉这块内存。
========================
但是在Python中呢?
没有free函数,那这块结点内存怎么办?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-11 15:36:26 From FishC Mobile | 显示全部楼层
del,删除了会自动回收内存
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-4-11 15:41:43 | 显示全部楼层
哦。
======
看上面。
如果想要实现del 也不现实呀(毕竟在函数里面。是原来变量对象的另一个绑定
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-11 15:48:14 | 显示全部楼层
而且你说的也不对。
a = Demo()
b = Demo()
c = Demo()
head.next = a
a.next = b
b.next = c
------------------------
假设一个链表情景吧。
del a, b, c
---------------------
好了,虽然a,b,c对应的变量名被解除绑定了。
但是它们因为还被head指针引用者。
所以不会被GC回收。
node = head
while node:
    print(node.data)
    node = node.next    # You can still access the data by the head. But you cannot access them with name 'a', 'b', or 'c'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 23:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表