我正在尝试实现一个使用python context manager的类。
虽然我理解输入和退出的一般概念,但我不知道如何在多个代码块中使用相同的上下文管理器。
例如采取以下案例
@contextmanager
def backupContext(input)
try:
return xyz
finally
revert (xyz)
class do_something:
def __init__(self):
self.context = contextVal
def doResourceOperation_1():
with backupContext(self.context) as context:
do_what_you_want_1(context)
def doResourceOperation_2():
with backupContext(self.context) as context:
do_what_you_want_2(context)
我正在两次调用上下文管理器。假设我只想做一次..在 init 期间并使用相同的上下文管理器对象来完成我的所有操作,最后当对象是删除我想做恢复操作我应该怎么做呢?
我应该手动调用输入和退出而不是使用with语句吗?