何时从内存中释放变量



假设我定义了一个函数,它构建了一个列表,然后逐一打印列表中的项(没有实际用途,只是一个示例:

import os
def build_and_print():
    thingy = os.walk('some directory')
    for i in thingy:
        print i
if __name__ == '__main__:
    build_and_print()

如果构建的thingy非常大,它可能占用大量内存,在什么时候它将从内存中释放?

python是否存储变量thingy直到脚本完成运行或直到构建/使用它的函数完成运行?

一旦变量超出作用域,它将被垃圾收集器收集。

您可以在这里看到收集器代码。去收集函数,有注释说明的过程很好。

最新更新