

其中两个最大的阵营分别是“//”与“#”号:
- // 注释符:ActionScript, C (C99), C++, C#, D, F#, Go, Java, JavaScript, Kotlin, Object Pascal (Delphi), Objective-C, PHP, Rust, Scala, SASS, Swift, Xojo
- # 注释符:Bourne shell and other UNIX shells, Cobra, Perl, Python, Ruby, Seed7, Windows PowerShell, PHP, R, Make, Maple, Elixir, Nim
那么,Python 为什么用“#”号作注释符,而不是“//”呢?
这个问题恐怕没办法从解析的效率、符号的辨识度和输入的便利性等方面回答,因为它们基本上没有区别。我没有找到官方的解释,但是从这些注释符的阵营中,已经不难得出一个较为合理的解释:
- // 注释符基本上被 C 语言家族所用
- # 注释符则基本上是被 Shell 和其它脚本语言所用
Python 在创造之初,从 C 和 Shell 语言中借鉴了不少东西,但它是一种脚本语言,因此在注释符这个最为基础的语言要素上,就偏向了脚本语言的传统。
在某些“类脚本语言”中,比如 yaml、conf 和 ini 等格式的配置文件,它们大多也是采用脚本语言的“#”号作为注释符。所以,Python 行内注释符的选择,大概可以归结为一种历史原因,即借鉴了 Shell 脚本语言的写法。相比于行注释符的多样,块注释符更加是让人眼花缭乱:

Each line of a block comment starts with a # and a single space (unless it is indented text inside the comment).有人曾在 Twitter 上发问,为什么 Python 没有块注释符?Guido 回复称,可以将多行字符串用作块注释:

「 创造真正有价值的内容 」看到最后,你有什么想要说的吗?评论区等你!点赞!在看!
