批量 comment/uncomment 调试代码行的最佳方法?

Best method to bulk comment/uncomment debug lines of code?

我有一个 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

这在我仍在开发脚本时很好,但一旦我过了开发阶段,我想轻松切换这些打印语句。该脚本确实包含 other 我想 not 想要注释掉的打印语句,所以一些简单的东西,比如 find/replace 打印到 #print不行。

我考虑过将一个自定义打印函数放在一起,该函数仅在设置了调试标志时才打印,但我更希望这些行被完全注释掉。

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

最好的部分是,当您使用 if __debug__: 时,Python 去掉了 if 语句中不会被执行的分支,连同 if 声明本身。只剩下实际可以执行的代码。