首页 > 解决方案 > python 中的条件打印,无需为它们中的每一个编写一个 IF

问题描述

我在代码中写了很多 print(...) 行来验证中间结果。

当您需要它们时,它们很方便,但是当一切正常时,我需要提交/删除它们中的每一个。有时我发现我可能再次需要它们......然后我必须再次通过每个 print(...) 行。

那么是否有一个开关可以激活和停用那些 tmp-print 行?在不影响我一直想要激活的其他打印行的同时。

Ps:没有人愿意在每一行中使用 if :

if I_want_tmp_print:

   print("one of my 100 tmp print lines")

标签: pythonif-statementswitch-statement

解决方案


有时,如果我打印足够多并且我想要调试“可切换”,我会编写自己的函数,例如:

def prnt(string):
   print(string)
   return

因此,无论我在哪里检查我的代码,我都会使用我的函数 prnt 来代替。它会为我显示所有的输出。当我不再需要输出时,我将 print(string) 行注释掉,因此不会输出任何内容。

如果您只想停止注释代码的某些部分,我将阻止我的代码调用类似的函数,但参考号指示我在代码中使用它的位置。

def prnt(string, idx):
   if idx = 1:
      print(string)
   elif idx = 2:
      print(string)
   elif idx = 3:
      print(string)
...
   return

所以然后说我发现我在 idx=1 范围内进行测试并且我正在调用 prnt('string to print', 1) 正在按我的意愿工作,我可以在我的函数中注释掉该打印行.


推荐阅读