我有一对python函数,它们当前在两个值之间翻转全局变量。我想把它们转换成上下文管理器,这样我就可以用它们作为with
块,在块内设置变量,但在之后恢复它。以下是期望的行为:
>>> MODE
'user'
>>> mode_sudo() # Sets MODE to 'sudo'...
>>> MODE
'sudo'
>>> mode_user() # Sets MODE to 'user'...
>>> MODE
'user'
>>> with mode_sudo():
... print MODE
'sudo'
>>> MODE
'user'
这样的幻想可能吗?在
更新:为了清晰起见,以下是仅限上下文管理器的实现:
^{pr2}$用关键字调用这些w/o返回一个生成器。有没有一种方法可以通过普通的函数调用和巧克力上下文管理器来获得模式翻转行为?在
简单方法:
mode_sudo()
的标识。有关详细信息,请参见the doc。它实际上是整个“定义实现__enter__
和__exit__
的类”的快捷方式。在这样做:
相关问题 更多 >
编程相关推荐