是否有一种机制可以注释掉大块的Python代码?
目前,我可以看到评论代码的唯一方法是使用#
开始每一行,或者将代码括在三引号中:"""
。
这些问题是在每行之前插入#
很麻烦,而"""
会使我想用作注释的字符串显示在生成的文档中。
阅读完所有评论后,答案似乎是“否”。
答案 0 :(得分:392)
Python没有这样的机制。在每行前面添加#
以阻止评论。有关更多信息,请参阅PEP 8。大多数Python IDE都支持一种机制来自动为您执行块注释 - 带符号。例如,在我的机器上的IDLE中,它是 Alt + 3 和 Alt + 4 。
不要使用三引号,如您所发现的,这是用于文档字符串而不是阻止注释,尽管它具有类似的效果。如果你只是暂时评论一下,这可以作为临时措施。
答案 1 :(得分:87)
我知道的唯一治疗方法是一位优秀的编辑。抱歉。
答案 2 :(得分:68)
在不会被误认为文档字符串的上下文中隐藏三引号,例如:
'''
...statements...
''' and None
或:
if False: '''
...statements...
'''
答案 3 :(得分:36)
没有三重引号的唯一方法是添加:
if False:
然后缩进所有代码。请注意,代码仍需要具有正确的语法。
许多Python IDE可以在每个选定的行上为您添加#
,并在取消注释时删除它们。同样,如果您使用vi或Emacs,则可以创建一个宏来为您执行此代码块。
答案 4 :(得分:28)
M-x评论区域,Emacs'Python模式。
答案 5 :(得分:21)
在JetBrains中,Mac上的PyCharm使用 Command + / 来评论/取消注释所选的代码块。在Windows上,使用 CTRL + / 。
答案 6 :(得分:16)
至少在VIM中,您可以使用Block Visual模式(非Windows VIM中的CTRL+V
)选择要插入的第一列文本,然后使用此序列在每行前面添加#
:
I#<esc>
在块可视模式下,I
移动到插入模式,光标位于第一行的块之前。插入的文本将在块中的每个行之前复制。
答案 7 :(得分:8)
答案 8 :(得分:5)
comm='''
Junk, or working code
that I need to comment.
'''
您可以将comm
替换为您选择的变量,该变量可能更短,易于触摸,并且您知道在您的程序中不会(也不会)出现。示例:xxx
,oo
,null
,nil
。
答案 9 :(得分:5)
是的,有(取决于你的编辑)。在PyDev(和Aptana Studio中使用PyDev):
Ctrl + 4 - 评论选定的块
Ctrl + 5 - 取消注释所选块
答案 10 :(得分:4)
答案 11 :(得分:4)
在使用Python Tools for Visual Studio的Visual Studio中,可以通过 Ctrl + K , Ctrl + 注释掉块C 并取消注释 Ctrl + K , Ctrl + U 。
答案 12 :(得分:3)
我在Windows计算机上使用Notepad++,选择您的代码,输入CTRL-K
。要取消注释,请选择代码,然后按 Ctrl + Shift + K 。
顺便说一下,Notepad ++可以很好地用作Python编辑器。具有自动完成,代码折叠,语法突出显示等功能。它在演讲和啤酒中都是免费的!
答案 13 :(得分:3)
注释掉Python代码(理解为解释器忽略的代码)的唯一机制是the #。
正如您所说,您也可以使用string literals,但解释器不会忽略它,但可能与程序执行完全无关。
答案 14 :(得分:2)
答案 15 :(得分:1)
在Eric4上有一个简单的方法:选择一个块,输入 Ctrl + M 来评论整个块或 Ctrl + alt + M 取消注释。
答案 16 :(得分:1)
另一种基于编辑器的解决方案:Emacs中的文本“矩形”。
突出显示要注释掉的代码,然后是C-x-r-t#
取消注释代码:突出显示,然后是C-x-r-k
我每天都在使用这一天。 (当然,分配给热键。)
这种强大的正则表达式搜索/替换是我容忍Emacs其他“怪癖”的原因。
答案 17 :(得分:0)
使用像SciTe这样的精美编辑器,选择你的代码,按 Ctrl + Q 并完成。
如果您没有支持块注释的编辑器,您可以在代码块的开头和结尾使用三重引号字符串来“有效”地将其注释掉。但这不是最好的做法。
答案 18 :(得分:0)
三重报价对我来说还可以。 您可以使用'''foo'''作为文档字符串,使用“”“bar”“”作为注释,反之亦然,以使代码更具可读性。