Domanda

Ho dovuto fare un po ' di introspezione in python e non era bella:

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

Per ottenere qualcosa di simile

foo.py:22 bar() blah blah

Nel nostro output di debug.

Mi piacerebbe idealmente come anteporre nulla a stderr con questo tipo di informazioni -- È possibile modificare il comportamento di stampa a livello globale all'interno di python?

È stato utile?

Soluzione

Un'istruzione di stampa fa il suo IO attraverso "sys.stdout.scrivere" in modo da poter sostituire sys.stdout se si desidera modificare il flusso di stampa.

Altri suggerimenti

Il python ispezionare modulo rende tutto molto più facile e più pulito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top