批量注释/取消注释调试代码行的最佳方法?

时间:2015-03-11 23:51:40

标签: python debugging

我有一个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标志时才能打印,但是我更喜欢这些很多行被完全注释掉了。

1 个答案:

答案 0 :(得分:0)

你很幸运。 Python有__debug__标志,如果以优化模式(False命令行标志)启动解释器,则设置为-O,否则为True

最好的部分是,当你使用if __debug__:时,Python会删除不会被执行的if语句的分支,以及if语句本身。只有实际可以执行的代码仍然存在。