如何在循环引用中手动释放python对象

如何在循环引用中手动释放python对象,python,garbage-collection,Python,Garbage Collection,我最近试图研究Python的垃圾收集,我发现。 因此,首先让我检查我的理解是否正确:因此,通常情况下,当循环引用中不包含的对象的ref计数为0时,它们将被垃圾收集——并且在某个时间点它们应该达到0。因此,在调用gc之前,循环引用中的对象不会被释放,因为它们的引用计数大于0。当gc运行时,gc可以检测并释放循环引用。但是如果循环引用中的对象具有\uuu del\uu方法,那么gc不知道该做什么。因此prorgrammer的任务是通过gc.garbage手动处理这些对象 那么在这里,“手动处理”是否

我最近试图研究Python的垃圾收集,我发现。 因此,首先让我检查我的理解是否正确:因此,通常情况下,当循环引用中不包含的对象的ref计数为0时,它们将被垃圾收集——并且在某个时间点它们应该达到0。因此,在调用gc之前,循环引用中的对象不会被释放,因为它们的引用计数大于0。当gc运行时,gc可以检测并释放循环引用。但是如果循环引用中的对象具有
\uuu del\uu
方法,那么gc不知道该做什么。因此prorgrammer的任务是通过
gc.garbage
手动处理这些对象


那么在这里,“手动处理”是否意味着我应该手动打破循环引用?(我的意思是明确地说,呼叫
delobj
不应该起作用)?或者有更好的方法吗?

我认为
gc.garbage
主要是一种调试帮助,“手动处理”主要是“检查内容以找出发生了什么,并更改程序以防止再次发生”。我认为
gc.garbage
主要是一种调试帮助,“手动处理”主要是指“检查内容以找出发生了什么,并更改程序以防止再次发生”。