¿Es posible acceder al gestor de contexto adjunto?

Hay esencialmente tres formas de usar la sentencia with:

Utilice un administrador de contexto existente:

with manager:
    pass

Cree un administrador de contexto y enlace su resultado a una variable:

with Manager() as result:
    pass

Cree un administrador de contexto y descarte su valor de retorno:

with Manager():
    pass

Si tenemos lugar una función.get_manager() Dentro de los tres con los bloques anteriores, ¿existe alguna implementación que pueda devolver el administrador de contexto adjunto, o al menos su__exit__ ¿función?

Obviamente, es fácil en el primer caso, pero no puedo pensar en una manera de hacer que funcione en los otros dos. Dudo que sea posible obtener todo el administrador de contexto, ya que la pila de valores aparece inmediatamente después de laSETUP_WITH opcode Sin embargo, desde la__exit__ La función se almacena en la pila de bloques porSETUP_WITH, ¿hay alguna forma de acceder a ella?

Respuestas a la pregunta(3)

Su respuesta a la pregunta