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

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

and

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

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

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


当前回答

来自The Zen of Python:

应该有一种——最好只有一种——明显的方法来做到这一点。

其他回答

此外,多行注释是一个婊子。很抱歉,但是不管使用哪种语言,我只将它们用于调试目的。假设你有这样的代码:

void someFunction()
{
    Something
    /*Some comments*/
    Something else
}

然后,您发现代码中有一些东西无法用调试器修复,因此您开始手动调试,使用这些多行注释注释越来越小的代码块。这将给出函数:

void someFunction()
{ /*
    Something
   /* Comments */
   Something more*/
}

这真让人恼火。

注释掉Pycharm IDE中的一段代码:

代码|注释与行注释 Windows、Linux:按“Ctrl + /” Mac操作系统:Command + /

对于任何在Python中寻找多行注释的人来说,使用三引号格式可能会产生一些有问题的后果,我刚刚经历了艰难的过程。考虑一下:

this_dict = {
    'name': 'Bob',

"""
This is a multiline comment in the middle of a dictionary
"""

    'species': 'Cat'
}

多行注释将被塞到下一个字符串中,使 “物种”的关键。最好只使用#注释。

这只是猜测。但

因为它们是字符串,所以它们有一些语义值(编译器不会删除它们),因此将它们用作文档字符串是有意义的。它们实际上成为AST的一部分,因此提取文档变得更加容易。

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

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