9

私はPythonでいくつかの内省をしなければなりませんでしたが、それはきれいではありませんでした:

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

のようなものを得るには

foo.py:22 bar() blah blah

デバッグ出力で。

理想的には、この種の情報を stderr の前に追加したいと思います - Python 内でグローバルに print の動作を変更することは可能ですか?

4

2 に答える 2

3

print ステートメントは「sys.stdout.write」を介して IO を実行するため、印刷ストリームを操作する場合は sys.stdout をオーバーライドできます。

于 2008-09-03T12:42:43.950 に答える
1

python inspectモジュールを使用すると、これがはるかに簡単でクリーンになります。

于 2008-09-03T15:21:20.433 に答える