2008-09-03 15 views
7

Ich hatte etwas Selbstbeobachtung in Python zu tun, und es war ziemlich nicht:Wie mache ich monkeypatching in Python?

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

Um so etwas wie

foo.py:22 bar() blah blah 

In unserer Debugging-Ausgabe zu erhalten.

Ich würde im Idealfall mit dieser Art von Informationen etwas vor stderr voranstellen - Ist es möglich, das Verhalten von Druck global in Python zu ändern?

Antwort

3

Eine print-Anweisung führt ihren IO über "sys.stdout.write" aus, sodass Sie sys.stdout überschreiben können, wenn Sie den Druckdatenstrom bearbeiten möchten.

1

Das Python inspect Modul macht dies viel einfacher und sauberer.

Verwandte Themen