如何在Python中注释掉一段代码

是否有一种机制可以注释掉大块的Python代码?

现在,我所能看到的注释掉代码的唯一方法是用#开始每一行,或者用三引号括起代码:"""

问题是在每行之前插入#很麻烦,而"""使我想用作注释的字符串显示在生成的文档中。

在阅读了所有的评论后,答案似乎是“不”。

1994203 次浏览

没有三引号的唯一方法是添加一个:

if False:

然后缩进所有代码。请注意,代码仍然需要具有正确的语法。


许多Python ide可以为您在每一行添加#,并在取消注释时删除它们。同样地,如果你使用6Emacs,你可以创建一个宏来为你的代码块做这件事。

Python没有这样的机制。在每行前加上#来阻止注释。更多信息见PEP 8。大多数Python ide都支持一种机制来自动执行带哈希符号的块注释。例如,在我的机器的IDLE中,它是Alt+3.Alt+4

正如您所发现的,不要使用三引号;是针对文档字符串而不是块注释的,尽管它具有类似的效果。如果你只是暂时注释掉一些东西,这作为一个临时措施是可以的。

我唯一知道的解决办法就是找个好编辑。对不起。

注释掉Python代码(被解释器理解为忽略的代码)的唯一机制是#

如你所说,你也可以使用字符串字面值,它不会被解释器忽略,但是对于程序执行来说可能完全无关紧要。

M-x注释区域,以Emacs' Python模式。

将三引号隐藏在一个不会被误认为文档字符串的上下文中,例如:

'''
...statements...
''' and None

或者:

if False: '''
...statements...
'''

使用一个不错的编辑器,如SciTe,选择你的代码,按Ctrl + ,完成。

如果你没有一个支持块注释的编辑器,你可以在代码块的开始和结束使用一个三重引号字符串来“有效地”注释它。但这并不是最好的做法。

三引号对我来说是OK的。 你可以在文档字符串中使用" foo ",在注释中使用"" bar """,反之亦然,以使代码更具可读性

至少在VIM中,你可以选择你想要插入的文本的第一列,使用块可视化模式(非windows VIMs中是CTRL+V),然后在每一行之前使用这个序列加上#:

I#<esc>

在块可视化模式下,I移动到插入模式,光标在第一行的块前面。插入的文本被复制到代码块中的每一个行之前。

我在Windows机器上使用notepad++,选择您的代码,键入CTRL-K。要取消注释,请选择代码并按Ctrl + 转变 + K

顺便说一句,notepad++作为Python编辑器工作得很好。具有自动补全、代码折叠、语法高亮显示等功能。它是自由的,就像言论和啤酒一样!

在# EYZ0:

  • 到积木的顶部,用字母a标记它。
  • 到积木的底部,用字母b标记它

然后做

:'a,'b s!^!#!
comm='''
Junk, or working code
that I need to comment.
'''

您可以用自己选择的一个变量替换comm,这个变量可能更短,易于触摸,并且您知道不会(也不会)出现在您的程序中。例如:xxxoonullnil

在Eric4上有一个简单的方法:选择一个区块,输入Ctrl+来注释整个区块或Ctrl+alt+来取消注释。

另一个基于编辑器的解决方案:Emacs中的文本“矩形”。

突出显示要注释掉的代码,然后是c -x-r- t#

取消注释代码:高亮,然后是C-x-r-k

我每天都在用这个。(当然,分配给热键。)

这一点和强大的正则表达式搜索/替换是我容忍Emacs的其他“怪癖”的原因。

是的,有(取决于你的编辑)。在PyDev中(和在Aptana Studio与PyDev):

  • Ctrl + 4 -注释选定的块

  • Ctrl + 5 - uncomment selected block

Eclipse + PyDev中中,Python块注释类似于Eclipse Java块注释;选择你想要评论的行,并使用Ctrl + /来评论。要取消注释一个注释块,执行相同的操作。

在Visual Studio中使用Python工具的Visual Studio,可以用Ctrl+KCtrl+C来注释区块,用Ctrl+KCtrl+U来未注释区块。

Eclipse中使用PyDev中,您可以选择一个代码块,并按Ctrl +

在Mac上的JetBrains PyCharm中,使用命令 + /注释/取消注释选定的代码块。在Windows系统中,使用CTRL + /