Wie mache ich Monkeypatching in Python?
-
09-06-2019 - |
Frage
Ich musste etwas Selbstbeobachtung in Python machen und es war nicht schön:
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 zu bekommen
foo.py:22 bar() blah blah
In unserer Debugging-Ausgabe.
Ich würde idealerweise gerne etwas auf Stderr mit dieser Art von Informationen vorbereiten - ist es möglich, das Verhalten von Druck in Python weltweit zu ändern?
Lösung
Eine Druckanweisung erledigt ihre E/A über „sys.stdout.write“, sodass Sie sys.stdout überschreiben können, wenn Sie den Druckstrom manipulieren möchten.
Andere Tipps
Die Python prüfen Modul macht dies viel einfacher und sauberer.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow