【发布时间】:2010-10-27 23:00:06
【问题描述】:
是否可以在 Python 中使用with 语句声明多个变量?
类似:
from __future__ import with_statement
with open("out.txt","wt"), open("in.txt") as file_out, file_in:
for line in file_in:
file_out.write(line)
...还是同时清理两个资源的问题?
【问题讨论】:
-
可能是这样:用 [expr1,expr2] 作为 f: 然后使用 f[0] 和 f[1]。
-
会很好,因为不需要导入某些东西....但它不起作用 AttributeError: 'list' object has no attribute 'exit'
-
如果python只有闭包,你就不需要with语句
-
您不需要 使用 with 语句,对吧?您可以将 file_out 和 file_in 设置为 None,然后执行 try/except/finally,在其中打开它们并在 try 中处理它们,如果它们不是 None,则在 finally 中关闭它们。不需要双缩进。
-
这些答案中的许多不涉及两个以上 with 语句的需要。理论上可能存在需要打开数十个上下文的应用程序,如果施加任何行长度限制,嵌套很快就会崩溃。
标签: python with-statement