【问题标题】:How to comment out a block of code in Python [duplicate]如何在Python中注释掉一段代码[重复]
【发布时间】:2010-10-15 02:19:22
【问题描述】:

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

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

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

看完所有cmets,答案似乎是“否”。

【问题讨论】:

  • 这个问题之前在 Stack Overflow 问题 Why doesn't Python have multiline comments? 中得到了回答。
  • 专业实践的附加准则,“不要使用三引号”,将其与其他帖子区分开来......
  • 叹息。一个更有用且不重复的问题被标记为重复......这个问题要求一个解决方案,而另一个则将答案(即不,没有解决方案)作为询问它必须问什么的先决条件。跨度>
  • Ctrl + / 适用于 PyCharm
  • Perl 允许您使用文档语法进行块注释,这样它就不会出现在文档中。这就是为什么我们有不止一种做事的方法。它被称为“灵活性”。

标签: python docstring


【解决方案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 可以在每个选定的行上为您添加 #,并在取消注释时也将其删除。同样,如果您使用viEmacs,您可以为代码块创建一个宏来为您执行此操作。

【讨论】:

  • 操作人员提到他们不希望 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 的编辑器,您可以在代码块的开头和结尾使用三引号字符串来“有效地”将其注释掉。不过,这不是最佳做法。

              【讨论】:

                猜你喜欢
                • 2011-02-03
                • 2022-09-23
                • 2021-11-03
                • 2016-04-25
                • 2012-02-24
                • 2022-12-05
                • 1970-01-01
                • 2017-11-24
                • 1970-01-01
                相关资源
                最近更新 更多