【发布时间】:2013-10-08 04:52:16
【问题描述】:
我一直在使用许多上下文管理器作为组合各种设置/拆卸情况的简洁方式。由于我的部署以 Python 2.6 为目标,这意味着使用 contextlib.nested。
最近我对使用相同的代码库同时支持 Python 2.x 和 Python 3 很感兴趣。 some projects 可以做到这一点,但在上下文管理器的情况下我遇到了麻烦,因为:
-
contextlib.nested在 Python 3 中不受支持 - 2.6 不支持 Python-3 样式的嵌套上下文管理器(例如,
with aa() as a, bb() as b: ...)。
这里有一个基本的语法不兼容。由于我无法控制的各种原因,2.7 目前可能难以投入生产,但我想尽可能地对代码进行未来验证,因此我对 Python 3 感兴趣。
谁能建议一种解决方法,在 2.6 和 3.x 的同一代码库中支持嵌套上下文管理器?或者这是一个失败的原因?
【问题讨论】:
标签: python python-3.x python-2.6 contextmanager