我一直在使用很多上下文管理器作为组合各种设置/拆卸情况的干净方式。由于我的部署以 Python 2.6 为目标,这意味着使用contextlib.nested
.
最近,我对使用相同的代码库同时支持 Python 2.x 和 Python 3 很感兴趣。这在某些项目中是可能的,但在上下文管理器的情况下我遇到了麻烦,因为:
contextlib.nested
Python 3 不支持with aa() as a, bb() as b: ...
2.6 不支持 Python-3 样式的嵌套上下文管理器(例如)。
这里有一个基本的语法不兼容。由于我无法控制的各种原因,2.7 目前可能难以投入生产,但我想尽可能地对代码进行未来验证,因此对 Python 3 很感兴趣。
任何人都可以建议一种解决方法来支持 2.6 和 3.x 的同一代码库中的嵌套上下文管理器吗?或者这是一个失败的原因?