¿Cómo hago parches de monos en Python?
-
09-06-2019 - |
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?
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