小编Nat*_*ell的帖子

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

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

我在引擎的C代码中解决这个问题的方法是printfvararg宏中使用该函数,并定义在发布版本中不执行任何操作.

这是我目前的解决方案:

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

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

我想知道你是否可以对print关键字如何工作做些什么?

python printing

8
推荐指数
3
解决办法
1657
查看次数

我可以制作一个HALT_ONCE宏吗?

我正试图找出一个透明的解决方案,用于在游戏中反复出现的调试暂停.

一个微不足道的例子; 说我在我的渲染器中停下来告诉我何时尝试使用NULL材质.我的渲染器处理这个问题,但我仍然想知道我做错了什么.除非我手动禁用它,否则此暂停将立即命中每一帧.

这是代码ID,可以变成一个宏(或其他像透明一样透明的东西)

#define HALT(errorMsg) printf(errorMsg);__asm { int 3 };
satic bool hitOnce = false;
if (!hitOnce)
{
    hitOnce = true;
    HALT("its all gone wrong!")
}
Run Code Online (Sandbox Code Playgroud)

我的想法是创建一个创建此代码的宏,每次都有一个唯一的bool变量.到目前为止我遇到的问题是我无法在编译时增加数字以为每个HALT_ONCE生成唯一的静态bool.

c++ debugging

1
推荐指数
1
解决办法
109
查看次数

标签 统计

c++ ×1

debugging ×1

printing ×1

python ×1