with
Python のステートメントを使用して複数の変数を宣言することは可能ですか?
何かのようなもの:
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)
... または、2 つのリソースを同時にクリーンアップすることが問題なのでしょうか?
ベストアンサー1
それは可能ですPython 3 v3.1 以降そしてPython 2.7。 新しいwith
構文複数のコンテキスト マネージャーをサポートします。
with A() as a, B() as b, C() as c:
doSomething(a,b,c)
とは異なりcontextlib.nested
、これは、またはそのメソッドが例外を発生させる場合でも、 および の が呼び出さa
れるb
ことを保証します。__exit__()
C()
__enter__()
前の変数を後の定義で使用することもできます(h/tアフマド下に):
with A() as a, B(a) as b, C(a, b) as c:
doSomething(a, c)
Python 3.10以降では、括弧を使うことができます:
with (
A() as a,
B(a) as b,
C(a, b) as c,
):
doSomething(a, c)