【发布时间】:2020-06-08 12:46:20
【问题描述】:
我有一个对象的上下文管理器,可以使用类似于open 上下文管理器,例如
with MyContextManager as cm:
cm.do_something()
我知道如果使用contextlib.ContextDecorator 来创建一个简单的上下文管理器,它可以变成一个装饰器。如果使用装饰器,是否也可以访问从上下文管理器产生的对象?例如。给定上面的上下文管理器,类似于:
@cmdecorator
def my_function(self, cm):
cm.do_something
我无法让它工作。要么我遗漏了一些微不足道的东西(希望如此),要么这是不可能的......这最终只是语法糖,但如果可能的话我很感兴趣。
【问题讨论】:
标签: python python-decorators contextmanager