好的,我知道三引号字符串可以作为多行注释。例如,
"""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风格指南,但我无法找到一个技术上的答案,为什么没有正式实现多行/* */类型的注释。我对使用三引号没有问题,但我有点好奇是什么导致了这个设计决定。
当前回答
三引号文本不应被视为多行注释;按照惯例,它们是文档字符串。它们应该描述你的代码做了什么以及如何使用它,而不是像注释掉代码块这样的事情。
根据Guido的说法,Python中的多行注释只是连续的单行注释(搜索“块注释”)。
为了注释代码块,我有时会使用以下模式:
if False:
# A bunch of code
其他回答
# This
# is
# a
# multi-line
# comment
在编辑器中使用注释块或搜索和替换(s/^/#/g)来实现这一点。
这可能又回到了一个核心概念,即应该有一种明显的方法来完成一项任务。额外的注释样式增加了不必要的复杂性,并可能降低可读性。
此外,多行注释是一个婊子。很抱歉,但是不管使用哪种语言,我只将它们用于调试目的。假设你有这样的代码:
void someFunction()
{
Something
/*Some comments*/
Something else
}
然后,您发现代码中有一些东西无法用调试器修复,因此您开始手动调试,使用这些多行注释注释越来越小的代码块。这将给出函数:
void someFunction()
{ /*
Something
/* Comments */
Something more*/
}
这真让人恼火。
注释掉Pycharm IDE中的一段代码:
代码|注释与行注释 Windows、Linux:按“Ctrl + /” Mac操作系统:Command + /
三引号在文档字符串中用作多行注释。# comments被用作内联注释,人们已经习惯了。
大多数脚本语言也没有多行注释。也许这就是原因?
参见PEP 0008,注释部分
看看你的Python编辑器是否为块注释提供了一些快捷键。Emacs支持它,Eclipse也支持,大概大多数像样的ide都支持。