带有语句的可变数量

时间:2012-09-04 20:28:05

标签: python with-statement

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

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

1 个答案:

答案 0 :(得分:4)

contextlib.nested就是为此而做的。

文档中的示例:

from contextlib import nested

with nested(*managers):
    do_something()