好的,我知道三引号字符串可以作为多行注释。例如,
"""Hello, I am a
multiline comment"""
and
'''Hello, I am a
multiline comment'''
但从技术上讲,这些是字符串,对吧?
我已经在谷歌上搜索并阅读了Python风格指南,但我无法找到一个技术上的答案,为什么没有正式实现多行/* */类型的注释。我对使用三引号没有问题,但我有点好奇是什么导致了这个设计决定。
好的,我知道三引号字符串可以作为多行注释。例如,
"""Hello, I am a
multiline comment"""
and
'''Hello, I am a
multiline comment'''
但从技术上讲,这些是字符串,对吧?
我已经在谷歌上搜索并阅读了Python风格指南,但我无法找到一个技术上的答案,为什么没有正式实现多行/* */类型的注释。我对使用三引号没有问题,但我有点好奇是什么导致了这个设计决定。
当前回答
因为#惯例是一种常见的惯例,用多行注释确实没有什么是用#符号注释做不到的。这是一个历史的偶然,就像/*…*/返回PL/I的注释,
其他回答
此外,多行注释是一个婊子。很抱歉,但是不管使用哪种语言,我只将它们用于调试目的。假设你有这样的代码:
void someFunction()
{
Something
/*Some comments*/
Something else
}
然后,您发现代码中有一些东西无法用调试器修复,因此您开始手动调试,使用这些多行注释注释越来越小的代码块。这将给出函数:
void someFunction()
{ /*
Something
/* Comments */
Something more*/
}
这真让人恼火。
这可能又回到了一个核心概念,即应该有一种明显的方法来完成一项任务。额外的注释样式增加了不必要的复杂性,并可能降低可读性。
假设他们只是被认为是不必要的。由于键入#注释非常简单,多行注释可以由许多单行注释组成。
另一方面,对于HTML来说,更需要多行程序。继续输入<!——像这样的评论——>。
我通过为我的文本编辑器(TextPad)下载一个宏来解决这个问题,它可以让我突出显示行,然后在每行的第一行插入#。类似的宏删除了#。有些人可能会问为什么多行是必要的,但当您为了调试目的而试图“关闭”一段代码时,它就会派上用场。
使用IDLE的多行注释:
Mac OS X,在代码选择后,使用Ctrl+3注释代码块,并使用Ctrl+4取消注释。 Windows,在代码选择之后, 用Ctrl+Alt+3注释代码块,用Ctrl+At+4取消注释。