如何在python中进行Monkeypatching?

时间:2020-03-05 18:46:59  来源:igfitidea点击:

我必须在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

在我们的调试输出中。

理想情况下,我希望在此类信息之前加上任何内容-
是否可以在python中全局更改print的行为?

解决方案

回答

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

回答

python inspect模块使这变得更加容易和清洁。