如何在python中进行monkeypatching?

如何在python中进行monkeypatching?,python,monkeypatching,Python,Monkeypatching,我不得不用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的行为?print语句通

我不得不用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的行为?

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

python模块使这变得更简单、更清晰