擅长:python、mysql、java
<p>循环(或“引用循环”)是两个或多个相互引用的对象,例如:</p>
<pre><code>alist = []
anoth = [alist]
alist.append(anoth)
</code></pre>
<p>或者</p>
^{pr2}$
<p>当然,这些都是非常简单的例子,只有两个项目的周期;现实生活中的例子往往更长,更难发现。没有什么灵丹妙药告诉你你刚刚做了一个周期,你只需要注意它。<a href="http://docs.python.org/library/gc.html?highlight=gc#module-gc" rel="nofollow noreferrer">gc</a>模块(其特定任务是对无法访问的周期进行垃圾收集)可以帮助您诊断现有的周期(当您设置适当的调试标志时)。当您确实需要(例如)子级和父级相互了解而不创建引用循环时,<a href="http://docs.python.org/library/weakref.html?highlight=weakref#module-weakref" rel="nofollow noreferrer">weakref</a>模块可以帮助您避免构建循环(只将两个相互引用中的一个放入弱引用或代理,或者使用模块提供的方便的弱字典容器)。在</p>