我有一个python脚本,它包含一个包含if / elif语句的非常冗长的循环。为了调试循环的流程,我在每个if / elif块下都有一个print语句,带有#debug尾随注释,如下所示:
if my_var1 == "foo":
print(my_var1)#debug
perform_various_calculations()
if my_var2 == "foobar":
print(my_var1, my_var2)#debug
pass
我还在开发脚本时这很好,但是一旦我已经过了开发阶段,我就想轻松切换这些打印语句。该脚本包含其他打印语句,我不想要注释掉,所以像#print的查找/替换打印这样简单的东西是行不通的。
我考虑过组合一个自定义打印功能,只有在设置了Debug标志时才能打印,但是我更喜欢这些很多行被完全注释掉了。
答案 0 :(得分:0)
你很幸运。 Python有__debug__
标志,如果以优化模式(False
命令行标志)启动解释器,则设置为-O
,否则为True
。
最好的部分是,当你使用if __debug__:
时,Python会删除不会被执行的if
语句的分支,以及if
语句本身。只有实际可以执行的代码仍然存在。