注释掉嵌套的三重引号

d.p*_*tto 6 python comments

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

def x():
   """This code will 
      add 1 and 1 """
   a=1+1
Run Code Online (Sandbox Code Playgroud)

但是,如果我必须注释掉已经包含很多其他注释块的代码块(三重引用注释),该怎么办?例如,如果我想完全注释掉这个功能..

"""
def x():
   """This code will 
      add 1 and 1 """
   a=1+1
"""
Run Code Online (Sandbox Code Playgroud)

这不起作用.我怎样才能注释掉这些代码块.

Kon*_*lph 13

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

这只是一种方法,你在技术上使用字符串文字,而不是评论.并且,虽然它已经相当成熟,但是这种编写注释的方式具有您观察到的缺点:您无法注释掉嵌套块.1

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

大多数编辑都有一些命令可以轻松地进行注释或多行注释.


1对于单层嵌套,您实际上可以使用'''"""nested """''',或者反过来.但我不推荐它.

  • 鉴于该技术已得到[Guido自己](https://twitter.com/#!/gvanrossum/status/112670605505077248)的认可,"滥用"似乎有点过头了:"Python提示:你可以使用多行字符串作为多行注释.除非用作文档字符串,否则它们不生成代码!:-)" (3认同)
  • 使用编辑器通过将#'添加到行的开头,即使使用Emacs或VIM,也是一种不好的方法.三重引用方法是事实上的标准,OP的问题是合法的. (2认同)

Alf*_*lfe 5

我经常在短暂的黑客和杀戮情况下做的事情如下所示.这不是一个真正的评论,它并不涵盖所有情况(因为你需要一个块),但也许它是有帮助的:

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

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

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