Pergunta

Tive que fazer uma introspecção em python e não foi nada 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

Em nossa saída de depuração.

Idealmente, gostaria de prender algo a Stderr com esse tipo de informação - é possível alterar o comportamento da impressão globalmente dentro do Python?

Foi útil?

Solução

Uma instrução print faz seu IO por meio de "sys.stdout.write" para que você possa substituir sys.stdout se quiser manipular o fluxo de impressão.

Outras dicas

A píton inspecionar módulo torna isso muito mais fácil e limpo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top