是否有一种机制可以注释掉大块的Python代码?
现在,我所能看到的注释代码的唯一方法是用#开始每一行,或者用三引号括起代码:""" "。
这样做的问题是在每行之前插入#很麻烦,而“”会使我想用作注释的字符串显示在生成的文档中。
在阅读了所有的评论后,答案似乎是“不”。
是否有一种机制可以注释掉大块的Python代码?
现在,我所能看到的注释代码的唯一方法是用#开始每一行,或者用三引号括起代码:""" "。
这样做的问题是在每行之前插入#很麻烦,而“”会使我想用作注释的字符串显示在生成的文档中。
在阅读了所有的评论后,答案似乎是“不”。
没有三引号的唯一方法是添加一个:
if False:
然后缩进所有代码。请注意,代码仍然需要具有正确的语法。
许多Python ide可以为你在每一行添加#,也可以在取消注释时删除它们。同样地,如果您使用vi或Emacs,您可以创建一个宏来为您的代码块执行此操作。
Python没有这样的机制。在每行前加上#以阻止注释。有关更多信息,请参阅PEP 8。大多数Python ide都支持一种机制来自动执行带哈希符号的块注释。例如,在我机器的IDLE中,它是Alt+3和Alt+4。
不要使用三引号;正如您所发现的,这是针对文档字符串而不是块注释的,尽管它具有类似的效果。如果你只是暂时注释掉一些东西,这作为一个临时措施是可以的。
将三引号隐藏在一个不会被误认为文档字符串的上下文中,例如:
'''
...statements...
''' and None
or:
if False: '''
...statements...
'''
使用漂亮的编辑器,如SciTe,选择你的代码,按Ctrl + Q,完成。
如果你没有一个支持块注释的编辑器,你可以在代码块的开始和结束使用一个三重引号字符串来“有效地”注释它。但这并不是最好的做法。
至少在VIM中,你可以选择你想要插入的文本的第一列,使用Block Visual模式(在非windows VIM中CTRL+V),然后在每行之前使用下面的序列加上#:
I#<esc>
在块可视化模式下,我移动到插入模式,光标在块的第一行之前。插入的文本在块中的每一行之前复制。
我在Windows机器上使用notepad++,选择您的代码,键入CTRL-K。要取消注释,请选择代码并按Ctrl + Shift + K。
顺便说一句,notepad++作为Python编辑器工作得很好。具有自动补全、代码折叠、语法高亮显示等功能。它是自由的,就像言论和啤酒一样!
comm='''
Junk, or working code
that I need to comment.
'''
你可以用你选择的一个更短、更容易触控的变量替换comm,并且你知道不会(也不会)出现在你的程序中。示例:xxx, oo, null, nil。
另一个基于编辑器的解决方案:Emacs中的文本“矩形”。
突出显示要注释掉的代码,然后是c -x-r- t#
取消注释代码:高亮,然后是C-x-r-k
我每天都在用这个。(当然,分配给热键。)
这一点和强大的正则表达式搜索/替换是我容忍Emacs的其他“怪癖”的原因。
在Eclipse + PyDev中,Python块注释类似于Eclipse Java块注释;选择要注释的行,并使用Ctrl + /进行注释。要取消注释一个注释块,执行相同的操作。
在Visual Studio中,使用Python Tools for Visual Studio,可以用Ctrl+K, Ctrl+C来注释块,用Ctrl+K, Ctrl+U来取消注释块。