Pregunta

Tuve que hacer un poco de introspección en Python y no fue bonito:

name = sys._getframe(1).f_code
name = "%s:%d %s()" %(os.path.split(name.co_filename)[1],name.co_firstlineno,name.co_name)

Para conseguir algo como

foo.py:22 bar() blah blah

En nuestra salida de depuración.

Idealmente, me gustaría preparar cualquier cosa para Stderr con este tipo de información: ¿es posible cambiar el comportamiento de la impresión a nivel mundial dentro de Python?

¿Fue útil?

Solución

Una declaración de impresión realiza su IO a través de "sys.stdout.write" para que pueda anular sys.stdout si desea manipular el flujo de impresión.

Otros consejos

la pitón inspeccionar El módulo hace que esto sea mucho más fácil y limpio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top