我如何在python中进行monkeypatching?

172*_*729 8 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)
Run Code Online (Sandbox Code Playgroud)

得到类似的东西

foo.py:22 bar() blah blah
Run Code Online (Sandbox Code Playgroud)

在我们的调试输出中.

理想情况下,我希望通过这种信息向stderr添加任何内容 - 是否有可能在python中全局更改print的行为?

Cur*_*her 3

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