切换 python 打印的最佳方法是什么?

2023-11-23

我在游戏引擎中运行 Python 2.4,并且希望能够在需要时关闭所有打印。例如,我希望在调试版本中打开打印,然后在发布版本中关闭打印。 它还必须尽可能透明。

我在引擎的 C 代码中对此的解决方案是printf里面的函数vararg宏,并将其定义为在发布版本中不执行任何操作。

这是我当前的解决方案:

DebugPrints = True
def PRINT (*args):
    global DebugPrints
    if DebugPrints:
        string = ""
        for arg in args:
            string += " " + str(arg)
        print string

它可以轻松切换打印输出,但可能有更好的方法来格式化字符串。我的主要问题是,这实际上向程序添加了更多的函数调用。

我想知道您是否可以对 print 关键字的工作原理做些什么?


是的,你可以分配sys.stdout无论你想要什么。创建一个小类write不执行任何操作的方法:

class DevNull(object):
    def write(self, arg):
        pass

import sys    
sys.stdout = DevNull()
print "this goes to nirvana!"

使用相同的技术,您还可以通过设置将打印记录到文件中sys.stdout到一个打开的文件对象。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

切换 python 打印的最佳方法是什么? 的相关文章

随机推荐