如何在Python中注释掉一段代码[重复]
Posted
技术标签:
【中文标题】如何在Python中注释掉一段代码[重复]【英文标题】:How to comment out a block of code in Python [duplicate] 【发布时间】:2010-10-15 02:19:22 【问题描述】:有没有一种机制可以注释掉大块的 Python 代码?
目前,我能看到的注释掉代码的唯一方法是以#
开头的每一行,或者用三引号将代码括起来:"""
。
这些问题是在每行之前插入#
很麻烦,而"""
会使我想用作注释的字符串显示在生成的文档中。
看完所有cmets,答案似乎是“否”。
【问题讨论】:
这个问题之前在 Stack Overflow 问题 Why doesn't Python have multiline comments? 中得到了回答。 专业实践的附加准则,“不要使用三引号”,将其与其他帖子区分开来...... 叹息。一个更有用且不重复的问题被标记为重复......这个问题要求一个解决方案,而另一个则将答案(即不,没有解决方案)作为询问它必须问什么的先决条件。跨度> Ctrl + / 适用于 PyCharmPython 没有这样的机制。在每一行前添加 #
以阻止注释。有关详细信息,请参阅PEP 8。大多数 Python IDE 都支持一种机制,可以自动为您执行带有哈希符号的块注释。例如,在我机器上的 IDLE 中,它是 Alt+3 和 Alt+4。
不要使用三引号; 如您所见,这是用于文档字符串而不是阻止 cmets,尽管它具有类似的效果。如果你只是临时注释掉,这作为一个临时措施是可以的。
【讨论】:
对于非美国人,这是一个“哈希”符号。 在 Notepad++ 中是Ctrl+K
(v.5.9.2),适用于任何支持的语言
即使对美国人来说,“磅”也应该是 £ 或 ₤。
其实那个符号叫做八字形。请停止使用当地的俚语——很少有美国人称其为哈希,很少有非美国人称其为磅,但当他们说 octothorp 时,没有人会提到其他任何东西。除了选择通过使用它来表示其他东西来挑战这个明确答案的人。
python 的创建者实际上是suggests to use multi-line strings as block comments,所以我会说你的说法“不要使用三引号”是不合适的。【参考方案2】:
我所知道的唯一解决方法是一个好的编辑器。对不起。
【讨论】:
很明显,所有真正的Python程序员都使用ed,这个问题很容易解决:12,31s/^/#/ vim 与 nerdcommenter。选择你想要的块,然后 ,c在不会被误认为文档字符串的上下文中隐藏三引号,例如:
'''
...statements...
''' and None
或:
if False: '''
...statements...
'''
【讨论】:
我认为这不是一个好建议,您正在增加代码的复杂性而没有任何真正的好处。阅读该内容的人必须弄清楚为什么该代码在那里以及它应该做什么。 如果您要注释掉的代码已经包含三引号字符串怎么办? 幸运的是我没有。 @keithThompson 然后使用另一种三引号字符串【参考方案4】:没有三引号的唯一方法是添加:
if False:
然后缩进所有代码。请注意,代码仍然需要具有正确的语法。
许多 Python IDE 可以在每个选定的行上为您添加 #
,并在取消注释时也将其删除。同样,如果您使用vi 或Emacs,您可以为代码块创建一个宏来为您执行此操作。
【讨论】:
操作人员提到他们不希望 cmets 显示为文档字符串。 -1 撤回。这是一个聪明的主意,尽管这可能意味着 cmets 需要 cmets :) 该解决方案类似于仅将代码注释掉,不同之处在于您添加了四个空格而不是#,并且您还需要添加“if False:”行。 我正在做一些脚本黑客,这就是我想出的。 (所以,+1)。我可以简单地写“if False:”,将块推到 1 个选项卡上,这非常巧妙,我就完成了。我使用了不止一个编辑器,方法无非是,突出显示该块,然后按 Tab。奇怪的是,我问了一个朋友原来的问题,想炫耀S.O.当它是新的时候回来。 Ctrl+ / 或 Ctrl + Shift+/ 在 PyCharm 中也是如此【参考方案5】:在 Mac 上的 JetBrains PyCharm 中,使用 Command + / 来注释/取消注释选定的代码块。在 Windows 上,使用 CTRL + /。
【讨论】:
这也适用于 PyCharm 社区版,它是免费和开源的。 谢谢!也适用于文本管理员CTRL
+/
在 Windows 上不适用于瑞典语键盘布局。【参考方案6】:
M-x 注释区域,Emacs' Python 模式。
【讨论】:
M-; (comment-dwim) 太【参考方案7】:至少在 VIM 中,您可以使用块可视模式(在非 Windows VIM 中为CTRL+V
)选择要插入的第一列文本,然后使用此序列在每行之前添加#
:
I#<esc>
在块可视模式下I
移动到插入模式,光标位于第一行的块之前。插入的文本被复制到块中每行行之前。
【讨论】:
【参考方案8】:在vi:
转到块的顶部并用字母 a 标记它。 转到块的底部并用字母 b 标记它那就做吧
:'a,'b s!^!#!
【讨论】:
或者:CTRL+V(并选择行)=> :s/^/#/g 如果文本突出显示困扰你 => :noh【参考方案9】:comm='''
Junk, or working code
that I need to comment.
'''
您可以将comm
替换为您选择的变量,该变量可能更短、易于触摸,并且您知道不会(也不会)出现在您的程序中。示例:xxx
、oo
、null
、nil
。
【讨论】:
这将在运行时加载到内存中,如果打算创建注释,您希望程序忽略它。用#
引导每一行会更好。另外,不要将东西分配给名为null
的变量,那只是在要求灾难。【参考方案10】:
在 Visual Studio 中使用Python Tools for Visual Studio,可以通过 Ctrl+K、Ctrl+C 并被 Ctrl+K、Ctrl+U 取消注释。
【讨论】:
这也适用于 Visual Studio Code。 在 Windows 上使用 VS Code ctrl + /【参考方案11】:我在 Windows 机器上使用Notepad++,选择您的代码,输入CTRL-K
。要取消注释,您选择代码并按 Ctrl + Shift + K。
顺便说一下,Notepad++ 可以很好地用作 Python 编辑器。具有自动完成、代码折叠、语法高亮等功能。就像演讲和啤酒一样免费!
【讨论】:
【参考方案12】:是的,有(取决于您的编辑器)。在PyDev 中(在Aptana Studio 中使用 PyDev):
Ctrl + 4 - 评论选中的块
Ctrl + 5 - 取消注释选中的块
【讨论】:
但不是pep8格式。【参考方案13】:在Eclipse + PyDev 中,Python 块注释类似于 Eclipse Java 块注释;选择要评论的行并使用 Ctrl + / 进行评论。要取消注释已注释块,请执行相同操作。
【讨论】:
【参考方案14】:注释掉 Python 代码(理解为被解释器忽略的代码)的唯一机制是 the #。
正如你所说,你也可以使用string literals,它不会被解释器忽略,但与程序执行完全无关。
【讨论】:
【参考方案15】:在Eclipse使用PyDev,你可以选择一个代码块然后按Ctrl + #。
【讨论】:
取消注释块,使用 ctrl+shift+# 这也适用于 python 的 komodo-edit【参考方案16】:三引号对我来说是可以的。 您可以将 ''' foo ''' 用于文档字符串,将 """ bar """ 用于 cmets,反之亦然,以使代码更具可读性。
【讨论】:
我对三引号的问题是实际上正在检查它们的语法。这必须是不需要评论的开销。恰当的例子:如果你有 ''' /NPF ''' 并在 Python 3 中运行它,它会抛出一个语法错误。因此 Python 3 正在检查每个三引号的语法有效性。如果切换到 # 并注释该行,则会跳过它。【参考方案17】:另一个基于编辑器的解决方案:Emacs 中的文本“矩形”。
高亮要注释掉的代码,然后 C-x-r-t #
取消注释代码:高亮,然后 C-x-r-k
我每天都在使用它。 (当然,分配给热键。)
这种强大的正则表达式搜索/替换是我容忍 Emacs 其他“怪癖”的原因。
【讨论】:
【参考方案18】:在 Eric4 上有一个简单的方法:选择一个块,输入 Ctrl+M 来评论整个块或 Ctrl+alt+M 取消注释。
【讨论】:
【参考方案19】:使用像SciTe这样的好编辑器,选择您的代码,按Ctrl + Q 完成。
如果您没有支持块 cmets 的编辑器,您可以在代码块的开头和结尾使用三引号字符串来“有效地”将其注释掉。不过,这不是最佳做法。
【讨论】:
以上是关于如何在Python中注释掉一段代码[重复]的主要内容,如果未能解决你的问题,请参考以下文章