自动发卡网站建设,安装ss和wordpress,苏州浒关做网站,做网站需要的信息关于编程语言中的注释#xff0c;其重要性基本上已为大家所共识。
然而关于注释的规范#xff0c;这个话题就像我们之前聊过的缩进、终止符和命名方式一样#xff0c;众口难调。
注释符通常可分为两种#xff0c;即行注释与块注释#xff08;inline/block#xff09;其重要性基本上已为大家所共识。
然而关于注释的规范这个话题就像我们之前聊过的缩进、终止符和命名方式一样众口难调。
注释符通常可分为两种即行注释与块注释inline/block它们在不同的编程语言中的符号可谓让人眼花缭乱。
比如行注释符它至少有以下的 17 种之多出自维基百科其中两个最大的阵营分别是“//”与“#”号
// 注释符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 脚本语言的写法。
相比于行注释符的多样块注释符更加是让人眼花缭乱大多数写法是我从未见过的有些甚至是难以忍受的槽点太多
在这份表格里我们看不到 Python因为从严格意义上讲Python 并没有块注释符
一般而言我们在连续的每行内容前面加“#”号达到块注释的效果。块注释被看作是多个行注释。
PEP-8 中是这么建议的
Each line of a block comment starts with a # and a single space (unless it is indented text inside the comment).
有人曾在 Twitter 上发问为什么 Python 没有块注释符
Guido 回复称可以将多行字符串用作块注释Python 的多行字符串用三对单引号或双引号表示它还可以用作文档字符串即Documentation Strings简写docstrings。
但是将它当做多行注释符使用在语义上则有点怪怪的——它表示的是一段字符串虽然没有赋值给变量不会生成代码但是它并非语义上的注释。
由于脚本语言的特性它允许我们写一段“无根的字符串”在语法上没有问题也没有负作用negative effects但是如果把它作为注释使用这就是一种副作用side effects了。
从这点上考虑我虽然不反对有人把多行字符串写法用作块注释但是我会更推荐大家使用“#”号作注释。
另外对于无用的代码最好的做法就是直接删除如果后续发现有需要再回退修改。详细的多行注释尽量放在文档字符串中这样在核心代码中就会很少出现多行注释的情况了。
对于 Python 的注释符用法大家是怎么想的呢欢迎留言交流。
如果你觉得本文分析得不错那你应该会喜欢这些文章
写在最后本文属于“Python为什么”系列Python猫出品该系列主要关注 Python 的语法、设计和发展等话题以一个个“为什么”式的问题为切入点试着展现 Python 的迷人魅力。若你有其它感兴趣的话题欢迎填在《Python的十万个为什么 》里的调查问卷中。部分话题会推出视频版请在 B 站收看观看地址视频地址公众号【Python猫】 本号连载优质的系列文章有Python为什么系列、喵星哲学猫系列、Python进阶系列、好书推荐系列、技术写作、优质英文推荐与翻译等等欢迎关注哦。