python文档注释符是什么意思_Python 为何用 # 号做注释符?

文章来源: Python猫shell

做者:豌豆花下猫编程

1460000023299449

关于编程语言中的注释,其重要性基本上已为你们所共识。less

然而关于注释的规范,这个话题就像咱们以前聊过的缩进、终止符和命名方式同样,众口难调。编程语言

注释符一般可分为两种,即行注释与块注释(inline/block),它们在不一样的编程语言中的符号可谓让人眼花缭乱。ide

好比行注释符,它至少有如下的 17 种之多(出自维基百科):ui

1460000023299450

其中两个最大的阵营分别是“//”与“#”号:spa

// 注释符: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 为何用“#”号做注释符,而不是“//”呢?blog

这个问题恐怕没办法从解析的效率、符号的辨识度和输入的便利性等方面回答,由于它们基本上没有区别。ip

我没有找到官方的解释,可是从这些注释符的阵营中,已经不可贵出一个较为合理的解释:rem

// 注释符基本上被 C 语言家族所用

# 注释符则基本上是被 Shell 和其它脚本语言所用

Python 在创造之初,从 C 和 Shell 语言中借鉴了很多东西,但它是一种脚本语言,所以在注释符这个最为基础的语言要素上,就偏向了脚本语言的传统。

在某些“类脚本语言”中,好比 yaml、conf 和 ini 等格式的配置文件,它们大多也是采用脚本语言的“#”号做为注释符。

因此,Python 行内注释符的选择,大概能够归结为一种历史缘由,即借鉴了 Shell 脚本语言的写法。

相比于行注释符的多样,块注释符更加是让人眼花缭乱:

1460000023299451

1460000023299452

大多数写法是我从未见过的,有些甚至是难以忍受的,槽点太多!

在这份表格里,咱们看不到 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 回复称,能够将多行字符串用做块注释:

1460000023299453

Python 的多行字符串用三对单引号或双引号表示,它还能够用做文档字符串(即Documentation Strings,简写docstrings)。

可是,将它当作多行注释符使用,在语义上则有点怪怪的——它表示的是一段字符串,虽然没有赋值给变量,不会生成代码,可是它并不是语义上的注释。

因为脚本语言的特性,它容许咱们写一段“无根的字符串”,在语法上没有问题,也没有负做用(negative effects),可是,若是把它做为注释使用,这就是一种反作用(side effects)了。

从这点上考虑,我虽然不反对有人把多行字符串写法用做块注释,可是我会更推荐你们使用“#”号做注释。

另外,对于无用的代码,最好的作法就是直接删除,若是后续发现有须要,再回退修改。详细的多行注释尽可能放在文档字符串中,这样在核心代码中就会不多出现多行注释的状况了。

对于 Python 的注释符用法,你们是怎么想的呢?欢迎留言交流。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值