声明我有这样一个功能:打开文件,并在Python
def func(filename):
with open(filename) as f:
return [line.split('\t')[0] for line in f]
是“同向”的语句关闭文件,即使有一个“突然”函数的返回?我可以忽略“with”语句吗?即从内存泄漏的角度来看它是安全的和等效的,
def func(filename):
return [line.split('\t')[0] for line in open(filename)]
?
遗憾也不是那么清楚,我,我可以忽略“与”并使用第二个选择吗? – elyase 2013-05-13 01:15:58
@elyase:在这两个示例中都没有内存泄漏,但是您没有明确地关闭第二个文件句柄,这可能会导致问题:http://stackoverflow.com/questions/4599980/python-close-file -descriptor-question – Blender 2013-05-13 01:18:22
很好的例子!你可能想把'... as test'改成其他的东西,它使我停了一下,因为你的函数名也是测试。 – monkut 2013-05-13 01:28:14