当前位置: 首页 > 后端技术 > Python

为什么Python使用#符号作为注释?_0

时间:2023-03-26 17:42:54 Python

编程语言中注释的重要性,基本上已经被大家认可了。但是对于注释的规范,这个话题就像我们之前讲的缩进、终止符、命名方式一样,很难让大家认同。注释通常可以分为两种,即行注释和块注释(inline/block),它们在不同编程语言中的符号可谓琳琅满目。比如行注释,它至少有17种类型(来自维基百科):最大的两大阵营是“//”和“#”://注释:ActionScript、C(C99)、C++、C#、D、F#,Go,Java,JavaScript,Kotlin,ObjectPascal(Delphi),Objective-C,PHP,Rust,Scala,SASS,Swift,Xojo#评论:Bourneshell和其他UNIXshell,Cobra,Perl,Python,Ruby,Seed7,WindowsPowerShell,PHP,R,Make,Maple,Elixir,Nim那么,为什么Python使用“#”而不是“//”作为注释符号呢?这个问题恐怕从解析效率、符号识别、输入方便等方面都没有办法回答,因为它们之间基本没有区别。我没有找到官方的解释,但是从这些注解的阵营中,不难得到一个比较合理的解释://注释基本上是C语言家族使用的#注释基本上是Shell等脚本语言使用的使用的Python在创建之初大量借鉴了C和Shell语言,但它是一种脚本语言,所以在注释最基本的语言元素上偏向于脚本语言的传统。在一些“类脚本语言”中,如yaml、conf、ini格式的配置文件,也大多使用脚本语言的“#”符号作为注释符号。所以,选择Python内联注释,大概可以归结为一个历史原因,那就是借鉴了Shell脚本语言的写法。比起五花八门的行注释,块注释更加让人眼花缭乱:大部分都是我没见过的写法,有的甚至让人不忍直视,槽点太多!在此表中,我们没有看到Python,因为Python在技术上没有块注释!一般来说,我们会在每一行连续的内容前加一个“#”号来达到块注释的效果。块注释被视为多行注释。这是PEP-8中的建议:块注释的每一行都以#和一个空格开头(除非它是注释中的缩进文本)。曾经有人在Twitter上问,为什么Python没有块注释?Guido回复说多行字符串可以用作块注释:Python的多行字符串用三对单引号或双引号表示,也可以用作文档字符串(DocumentationStrings,简称docstrings)。但是,将它用作多行注释在语义上有点奇怪——它代表一个字符串,虽然它没有被赋值给一个变量,也没有生成代码,但它不是语义注释。由于脚本语言的特性,它可以让我们写出一个“无根字符串”,语法上没有问题,也没有负面影响(negativeeffects),但是如果作为注释,这是一个副作用(副作用)。从这一点来看,虽然我不反对有人用多行字符串写法作为块注释,但我还是建议大家使用“#”号作为注释。另外,对于没用的代码,最好的办法就是直接删除,后面有需要的时候再回滚修改。详细的多行注释尽量放在docstring中,这样核心代码中就很少会出现多行注释。您如何看待Python中注释的使用?欢迎留言交流。如果您觉得这篇文章的分析不错,那么您应该喜欢这些文章:1.为什么Python使用缩进来划分代码块?2、Python的缩进是反人类的设计吗?3.为什么Python不使用分号作为语句终止符?4.为什么Python没有main函数?为什么我不推荐写主函数?5、为什么Python推荐蛇类命名法?6、为什么Python不支持i++自增语法,也不提供++运算符?7、为什么Python只需要一条语句“a,b=b,a”就可以直接交换两个变量?写在最后:本文属于“WhyPython”系列(Python猫出品),主要关注Python的语法、设计、开发等话题。它以每一个“为什么”的问题为切入点,试图展示Python的魅力。魅力。如果您有其他感兴趣的话题,请填写《Python的十万个为什么? 》中的问卷。部分专题会有视频版,请到B站观看,观看地址:视频地址公众号【Python猫】,本号连载优质系列文章,包括WhyPython系列、喵星哲学猫系列、Python进阶系列、好书推荐系列、技术写作、优质英文推荐与翻译等,欢迎关注。