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

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

and

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

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

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


当前回答

使用IDLE的多行注释:

Mac OS X,在代码选择后,使用Ctrl+3注释代码块,并使用Ctrl+4取消注释。 Windows,在代码选择之后, 用Ctrl+Alt+3注释代码块,用Ctrl+At+4取消注释。

其他回答

三引号文本不应被视为多行注释;按照惯例,它们是文档字符串。它们应该描述你的代码做了什么以及如何使用它,而不是像注释掉代码块这样的事情。

根据Guido的说法,Python中的多行注释只是连续的单行注释(搜索“块注释”)。

为了注释代码块,我有时会使用以下模式:

if False:
    # A bunch of code

使用IDLE的多行注释:

Mac OS X,在代码选择后,使用Ctrl+3注释代码块,并使用Ctrl+4取消注释。 Windows,在代码选择之后, 用Ctrl+Alt+3注释代码块,用Ctrl+At+4取消注释。

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

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

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

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

这真让人恼火。

三引号在文档字符串中用作多行注释。# comments被用作内联注释,人们已经习惯了。

大多数脚本语言也没有多行注释。也许这就是原因?

参见PEP 0008,注释部分

看看你的Python编辑器是否为块注释提供了一些快捷键。Emacs支持它,Eclipse也支持,大概大多数像样的ide都支持。

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

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

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

#
# My multi-line comment in Python
#

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

'
' This is a VB.NET example
'

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