python - With 语句的数量可变

标签 python with-statement

有什么方法可以格式化 with 语句,以便我可以建立可变数量的上下文吗?就像,有时我想要四个带有语句的语句,但有时我可能只想要两个。事实上,我面临着调用所有我可以使用但没有使用的对象的虚拟版本的前景,然后将我的代码嵌套在十六个语句中,其中虚拟对象填充了我不使用的语句。因为我使用的是 Python 2.6.6,甚至不支持压缩语法。

顺便说一句,with 语句真的是获得有效的清理代码的唯一方法吗?确实没有其他方法可以获取类似于析构函数方法的任何内容,但使用标准 __del__ 并不是一个错误。方法?

最佳答案

contextlib.nested就是为此而生的。

文档中的示例:

from contextlib import nested

with nested(*managers):
    do_something()

关于python - With 语句的数量可变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12270889/

相关文章:

python - 如何让AppEngine在同一页面显示错误?

python - 如何过滤包含相似模式的行

python - 使用函数式 API 初始化后如何更改网络?

sql-server - ROW_NUMBER 在 CTE 中不起作用

python - 从缺失值大于 5 的行中删除缺失值,然后打印每列中缺失值的百分比

javascript - 'with' 语句和调用的一些复杂行为

javascript - `with` 语句中函数声明的范围

python - pybind11:如何使用上下文管理器实现

python - Networkx,获取节点的所有in_edges