如何在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模块使这变得更加容易和清洁。