好的,我知道三引号字符串可以作为多行注释。例如,

"""Hello, I am a 
   multiline comment"""

and

'''Hello, I am a 
   multiline comment'''

但从技术上讲,这些是字符串,对吧?

我已经在谷歌上搜索并阅读了Python风格指南,但我无法找到一个技术上的答案,为什么没有正式实现多行/* */类型的注释。我对使用三引号没有问题,但我有点好奇是什么导致了这个设计决定。


当前回答

我怀疑你会得到一个比“Guido觉得不需要多行注释”更好的答案。

圭多在推特上说:

Python提示:可以将多行字符串用作多行注释。除非用作文档字符串,否则它们不会生成代码!: -)

其他回答

我记得读过一个家伙,他会把他的多行注释放入一个三引号变量中:

x = '''
This is my
super-long mega-comment.
Wow there are a lot of lines
going on here!
'''

这确实会占用一些内存,但它为您提供了多行注释功能,而且大多数编辑器都会为您突出显示语法:)

通过简单地包装代码,注释代码也很容易

x = '''

and

'''

假设他们只是被认为是不必要的。由于键入#注释非常简单,多行注释可以由许多单行注释组成。

另一方面,对于HTML来说,更需要多行程序。继续输入<!——像这样的评论——>。

我通过为我的文本编辑器(TextPad)下载一个宏来解决这个问题,它可以让我突出显示行,然后在每行的第一行插入#。类似的宏删除了#。有些人可能会问为什么多行是必要的,但当您为了调试目的而试图“关闭”一段代码时,它就会派上用场。

因为#惯例是一种常见的惯例,用多行注释确实没有什么是用#符号注释做不到的。这是一个历史的偶然,就像/*…*/返回PL/I的注释,

就我个人而言,我的评论风格在说Java是像

/*
 * My multi-line comment in Java
 */

因此,如果您的风格与前面的示例相同,那么只有单行注释并不是一件坏事,因为相比之下,您将拥有

#
# My multi-line comment in Python
#

VB。NET也是一种只有单行注释的语言,我个人觉得它很讨厌,因为注释最终看起来不像点赞的评论,而更像某种引用

'
' This is a VB.NET example
'

单行注释最终比多行注释使用更少的字符,并且不太可能被正则表达式语句中的一些狡猾的字符转义?不过我倾向于同意内德的观点。