【问题标题】:comment out nested triple quotes注释掉嵌套的三引号
【发布时间】:2012-05-27 19:04:49
【问题描述】:

在python中注释多行我们使用三引号

def x():
   """This code will 
      add 1 and 1 """
   a=1+1

但是如果我必须注释掉已经包含许多其他注释块(三引号 cmets)的代码块怎么办。例如,如果我想完全注释掉这个函数..

"""
def x():
   """This code will 
      add 1 and 1 """
   a=1+1
"""

这不起作用。如何注释掉这样的代码块。

【问题讨论】:

  • 如果里面有双引号,外面可以用单引号。 ''' """comment""" '''。这行得通。

标签: python comments


【解决方案1】:

在python中注释多行我们使用三重逗号

这只是 一种方式,从技术上讲,您使用的是字符串文字,而不是注释。而且,虽然它已经相当成熟,但这种编写 cmets 的方式存在您观察到的缺点:您不能注释掉嵌套块。1

Python 没有嵌套多行 cmets,就这么简单。如果您想注释掉允许嵌套 cmets 的多行,唯一的安全选择是注释掉每一行。

大多数编辑器都有一些命令可以轻松注释掉或多行。


1 对于单层嵌套,您实际上可以使用'''"""nested """''',反之亦然。但我不会推荐它。

【讨论】:

  • 但是,OP 示例中的“cmets”都是文档字符串,这可能会让来自运行时无法使用内联文档的环境的人感到困惑。
  • “滥用”似乎有点过头了,因为该技术已得到Guido himself 的认可:“Python 提示:您可以将多行字符串用作多行 cmets。除非用作文档字符串,它们不生成任何代码!:-)"
  • 使用编辑器通过在行首添加 # 来完成此操作,即使使用 Emacs 或 VIM,也是一种不好的方法。三引号方法是事实上的标准,OP 的问题是合法的。
  • @EMS 我从不怀疑这个问题的合法性。但这种引用技术当然不是“事实上的标准”。它似乎被一些开发人员使用(包括 Guido,正如之前的评论者所指出的那样),但这并不能使其成为标准。更重要的是,问题是关于 nested multiline cmets。我挑战你找出我对那个问题的回答中的错误。你断言使用文本编辑器注释掉多行是不好的,这简直是荒谬的。
  • @EMS 这并不荒谬,我没有这么说。荒谬的是你断言另一种方法不好。事实上,另一种方法是最先进的、现状和许多文本编辑器和 IDE 支持的一个真正的方法。 gedit 特别有一个插件可以做到这一点。随心所欲地翻白眼,但不要将您的偏见外推到其他程序员(他们完全可以使用这种评论方法)。
【解决方案2】:

我在简短的 hack&slay 情况下经常做的事情如下所示。这不是真正的评论,也没有涵盖所有情况(因为您需要有一个块),但也许它会有所帮助:

if 0:  # disabled because *some convincing reason*
  def x():
   """This code will 
      add 1 and 1 """
   a=1+1

或者,如果您不能或不喜欢在典型缩进级别之间引入缩进级别:

# disabled because *some convincing reason*
if 0:  # def x():
   """This code will 
      add 1 and 1 """
   a=1+1

【讨论】:

    【解决方案3】:

    您应该使用# 进行注释,并在每一行的开头。如果您使用 eclipse + pydev,这非常容易。

    只需选择要注释的代码块,然后按Ctrl + \。取消注释也是如此。

    我相信其他编辑器中也有这样简单的方法。

    【讨论】:

      【解决方案4】:

      我正在学习 Udacity 的 Python 编程课程来构建搜索引擎。他们使用三重引号将网页的源代码作为字符串括在变量“page”中以搜索所有链接。

      page = '''网页源代码''' 用page.find()搜索的

      【讨论】:

        猜你喜欢
        • 2020-08-29
        • 1970-01-01
        • 2017-09-19
        • 2012-08-20
        • 2016-12-05
        • 1970-01-01
        • 2014-02-05
        • 1970-01-01
        • 2013-08-11
        相关资源
        最近更新 更多