532

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

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

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

阅读所有评论后,答案似乎是“否”。

4

19 回答 19

469

Python 没有这样的机制。在每行前面添加一个#以阻止注释。有关详细信息,请参阅PEP 8。大多数 Python IDE 都支持一种机制,可以自动为您执行带有哈希符号的块注释。例如,在我机器上的 IDLE 中,它是Alt+3Alt+ 4

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

于 2009-03-23T22:20:55.457 回答
98

我所知道的唯一治疗方法是一个好的编辑器。对不起。

于 2009-03-23T22:22:31.410 回答
96

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

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

或者:

if False: '''
...statements...
'''
于 2009-03-24T00:47:22.203 回答
45

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

if False:

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


许多 Python IDE 可以#在每个选定的行上为您添加,也可以在取消注释时删除它们。同样,如果您使用viEmacs,您可以为代码块创建一个宏来为您执行此操作。

于 2009-03-23T22:19:25.350 回答
36

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

于 2013-03-04T07:35:21.980 回答
29

Mx 注释区域,在Emacs的 Python 模式下。

于 2009-03-23T22:33:15.333 回答
17

至少在 VIM 中,您可以使用块可视模式(CTRL+V在非 Windows VIM 中)选择要插入的第一列文本,然后#使用以下序列在每行之前添加一个:

I#<esc>

在块可视模式I移动到插入模式,光标位于其第一行的块之前。插入的文本被复制到块中的每一行之前。

于 2009-10-01T21:27:50.267 回答
12

vi中:

  • 转到块的顶部并用字母 a 标记它。
  • 转到块的底部并用字母 b 标记它

然后做

:'a,'b s!^!#!
于 2010-09-16T17:48:52.490 回答
11
comm='''
Junk, or working code 
that I need to comment.
'''

您可以替换comm为您选择的变量,该变量可能更短,易于触摸,并且您知道不会(也不会)出现在您的程序中。例子:xxx, oo, null, nil.

于 2011-03-07T06:12:21.810 回答
6

我在 Windows 机器上使用Notepad++,选择你的代码,输入CTRL-K. 要取消注释,请选择代码并按Ctrl+ Shift+ K

顺便说一句,Notepad++ 可以很好地用作 Python 编辑器。具有自动完成、代码折叠、语法高亮等功能。它是免费的,就像演讲和啤酒一样!

于 2010-05-01T03:30:58.527 回答
6

是的,有(取决于您的编辑器)。在PyDev中(以及在带有 PyDev 的Aptana Studio中):

  • Ctrl+ 4- 评论选中的区块

  • Ctrl+ 5- 取消注释选中的块

于 2012-05-25T15:41:41.220 回答
6

在使用 Visual Studio 的Python 工具的 Visual Studio中,可以用Ctrl+ KCtrl+C注释掉块,用Ctrl+ KCtrl+取消注释U

于 2013-01-10T20:18:07.680 回答
5

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

于 2012-06-09T19:00:46.690 回答
4

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

正如您所说,您还可以使用解释器不会忽略的字符串文字,但与程序执行完全无关。

于 2009-03-23T22:31:24.773 回答
2

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

于 2013-02-13T03:20:04.300 回答
1

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

于 2009-03-24T07:35:32.003 回答
1

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

于 2012-01-18T12:20:09.093 回答
1

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

突出显示要注释掉的代码,然后 Cxrt #

取消注释代码:突出显示,然后是 Cxrk

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

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

于 2012-01-19T22:56:46.227 回答
0

使用像SciTe这样的好编辑器,选择您的代码,按Ctrl+Q并完成。

如果您没有支持块注释的编辑器,您可以在代码块的开头和结尾使用三引号字符串来“有效地”将其注释掉。虽然这不是最佳做法。

于 2009-03-24T07:22:26.013 回答