gpt4 book ai didi

python - 'with' 语句中有多个变量?

转载 作者:IT老高 更新时间:2023-10-28 12:06:17 25 4
gpt4 key购买 nike

是否可以在 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.1 中是可能的和 Python 2.7 .新with syntax支持多个上下文管理器:

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

contextlib.nested 不同,这保证 ab 将拥有它们的 __exit__()'即使 C() 或其 __enter__() 方法引发异常,也会调用 s。

您还可以在以后的定义中使用较早的变量(h/t Ahmad 下面):

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

从 Python 3.10 开始,you can use parentheses :

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

关于python - 'with' 语句中有多个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/893333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com