擅长:python、mysql、java
<p>在您的示例中,直到脚本结束,生成器才会进行垃圾回收。Python不知道您是否要再次使用<code>cd</code>,因此它不能丢弃它。准确地说,在<em>全局名称空间</em>中仍然存在对生成器的<em>引用</em>。在</p>
<p>当生成器的引用计数(reference count)</em>降至零时,生成器将获得GCed,就像任何其他对象一样。即使发电机没有耗尽。在</p>
<p>这种情况在很多正常情况下都会发生——如果它在超出范围的本地名称中,如果它是<code>del</code>ed,如果它的所有者得到GCed。但是如果任何活动对象(包括名称空间)包含对它的强引用,它就不会得到GCed。在</p>