我有一种情况,我试图将一些大而复杂的 python 例程移植到线程环境中。
我希望能够在每次调用的基础上将函数print
语句的输出重定向到其他地方(logging.Logger
具体来说是a)。
我真的不想修改我正在编译的代码的源代码,因为我需要保持与调用这些模块的其他软件的向后兼容性(它是单线程的,并且通过简单地抓取写入的所有内容来捕获输出sys.stdout
)。
我知道最好的选择是进行一些重写,但我在这里真的别无选择。
编辑-
或者,有什么方法可以覆盖 print 的本地定义以指向不同的函数?
然后我可以定义本地打印 = 系统打印,除非被 kwarg 覆盖,并且只涉及在每个例程开始时修改几行。