这两个陈述等价吗?
with A() as a, B() as b:
# do something
with A() as a:
with B() as b:
# do something
我问是因为两者a
and b
改变全局变量(这里是张量流)和b
取决于所做的更改a
。所以我知道第二种形式可以安全使用,但是是否相当于将其缩短为第一种形式?
是的,列出多个with
根据以下说法,一行中的语句与嵌套它们完全相同Python 2.7 语言参考 https://docs.python.org/2/reference/compound_stmts.html#the-with-statement:
对于多个项目,上下文管理器的处理方式就像嵌套了多个 with 语句:
with A() as a, B() as b:
suite
相当于
with A() as a:
with B() as b:
suite
类似的语言出现在Python 3 语言参考 https://docs.python.org/3/reference/compound_stmts.html#the-with-statement.
更新至 3.10+
版本 3.10 中的更改:支持使用分组括号将语句分成多行。
with (
A() as a,
B() as b,
):
SUITE
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)