如何在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 + / 适用于 PyCharm Perl 允许您使用文档语法进行块注释,这样它就不会出现在文档中。这就是为什么我们有不止一种做事的方法。它被称为“灵活性”。 【参考方案1】:

Python 没有这样的机制。在每一行前添加 # 以阻止注释。有关详细信息,请参阅PEP 8。大多数 Python IDE 都支持一种机制,可以自动为您执行带有哈希符号的块注释。例如,在我机器上的 IDLE 中,它是 Alt+3Alt+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【参考方案3】:

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

'''
...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 替换为您选择的变量,该变量可能更短、易于触摸,并且您知道不会(也不会)出现在您的程序中。示例:xxxoonullnil

【讨论】:

这将在运行时加载到内存中,如果打算创建注释,您希望程序忽略它。用# 引导每一行会更好。另外,不要将东西分配给名为null 的变量,那只是在要求灾难。【参考方案10】:

在 Visual Studio 中使用Python Tools for Visual Studio,可以通过 Ctrl+KCtrl+C 并被 Ctrl+KCtrl+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中注释掉一段代码[重复]的主要内容,如果未能解决你的问题,请参考以下文章

matlab中如何注释掉一段?

LaTeX 可不可以注释掉一行的某一部分

Eclipse怎么注释代码

KEIL如何查看有效代码长度 省略注释

c#代码注释

java 如何去掉xml注释串