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 中全局更改打印行为?

4

2 回答 2

3

打印语句通过“sys.stdout.write”执行其 IO,因此如果您想操作打印流,可以覆盖 sys.stdout。

于 2008-09-03T12:42:43.950 回答
1

python检查模块使这更容易和更清洁。

于 2008-09-03T15:21:20.433 回答