如何在python中对未知数量的变量使用单个"with"上下文管理器



我的问题如下:

list = [1,2,3] #unknown length
with (item for item in list):
...

我知道python 3.10支持在上下文管理器中使用元组,但我无法使用该版本。

如果您有一个任意的上下文管理器列表,您可以使用ExitStack动态地输入每一个。

from contextlib import ExitStack
cm_list = [...]

with ExitStack() as es:
for cm in cm_list:
es.enter_context(cm)
...

第一个进入的上下文管理器将是最后一个退出的,最后一个进入的将是第一个退出的,这与ExitStack实际上是一个上下文管理器堆栈的想法是一致的。

相关内容

  • 没有找到相关文章