Возможно ли получить доступ к окружающему контекстному менеджеру?

Существуют три способа использования оператора with:

Используйте существующий контекстный менеджер:

with manager:
    pass

Создайте менеджер контекста и свяжите его результат с переменной:

with Manager() as result:
    pass

Создайте менеджер контекста и отмените его возвращаемое значение:

with Manager():
    pass

Если у нас есть место функцииget_manager() внутри трех с блоками выше, есть ли реализация, которая может вернуть управляющий контекст, или, по крайней мере, их__exit__ функционировать?

Это'Очевидно, в первом случае это легко, но я могуНе могу придумать, как заставить это работать в двух других. Я сомневаюсь'Можно получить весь менеджер контекста, так как стек значений появляется сразу послеSETUP_WITH опкод. Тем не менее, так как__exit__ функция хранится в стеке блоковSETUP_WITHЕсть ли способ получить к нему доступ?

Ответы на вопрос(3)

Ваш ответ на вопрос