【发布时间】:2015-09-04 10:36:52
【问题描述】:
假设我定义了一个函数,它构建一个列表,然后将列表中的项目一个一个打印出来(没有实际用处,只是一个例子:
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 直到脚本完成运行或直到构建/使用它的函数完成运行?
【问题讨论】:
-
不要使用
list作为变量名 -
一旦名称超出范围,它将准备好进行垃圾收集 - 所以在函数调用之后。什么时候会被垃圾回收 - 可能会尽快,但您通常不知道。