Python ‘with’语句中的多个变量

问题:

使用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)

…还是正在清理两个资源的同时问题?

回答:

Python 3 since v3.1Python 2.7中有可能。新的with语法支持多个上下文管理器:

with A() as a, B() as b, C() as c:
    doSomething(a,b,c)

contextlib.nested不同,这保证ab即使C()或者__enter__()方法引发异常,也会调用__exit__()

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Multiple variables in Python ‘with’ statement

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

8 + 1 =