У меня есть менеджер контекста для объекта, который можно использовать аналогично диспетчеру контекста open
, например,
with MyContextManager as cm:
cm.do_something()
Я знаю, что простой менеджер контекста можно превратить в декоратор при использовании contextlib.ContextDecorator
, чтобы создать его. Возможно ли также получить доступ к объекту, полученному из диспетчера контекста, если вы используете декоратор? Например, учитывая менеджер контекста выше, что-то вроде:
@cmdecorator
def my_function(self, cm):
cm.do_something
Я не мог заставить это работать. Либо я упускаю что-то тривиальное (надеюсь, что так), либо это просто невозможно ... Это только синтактический c сахар в конце, но мне интересно, возможно ли это.