程序的建立要做到容易阅读,也容易理解。在这一个标准上,好的程序员在脑子里都是首先在乎他们的编码风格。开发这样一种代码风格是为了达到既可以让人,也可以让电脑保持良好地沟通,尤其是在程序的设计方面尤为重要。
当然有许多不同的编码风格,对于 Python 来说,官方标准就是 PEP8 这份文档了。你们可以自行查看官方文献来了解细节,我挑选主要的几项来介绍一下:
第一:
Python 代码块通常都是用 4 个空格来形成缩进句法。高度重视不要把空格与 Tab 制表符混用,因为不同的系统对待处理制表符时采用的宽度不一样,并且 Python 解释器不会把 Tab 和空格看成一个对象。许多纯文本编辑器都具有自动把 Tab 键转换成空格形式的功能。
第二:
使用顾名思义的识别符命名法。在选择用什么名字的时候,要能够让人读的出来,名字也能反映出行为、责任、或数据的含义。其中包括了:
类的名字( Python 的内置类型名也是如此)使用名词单数形式,首字母要大写。如果使用了多个单词的话,我们会遵循 CamelCase 驼峰体样式来书写类名,也就是每个单词的首字母都要大写,并紧紧相连,不需要使用下划线作为连接符。
函数的名字( Python 的内置函数名也是一样的)也涉及一个类里定义方法的名字,它们都采用全小写形式。如果使用多个单词,使用单个下划线来做连接点。函数的名字通常使用动词,这样才反映出函数或方法是做什么的。当然这里也有一种情况就是,如果你的函数或方法只是负责返回一个值,那么可以使用名词起名。
名字都是用来识别单个对象的,就是说要避免重名的现象,否则会出现歧义。例如,参数名、实例变量名、本地变量名,都采用全小写名词来命名。当然也会有用单个大写字母来命名的,例如一个数据结构的命名采用了 T 来说明是一种树状结构。
识别符有许多,其中有用来表示一种常量值,这也是一种传统用法,采用了全大写与单个下划线组合形式,这样的名字意味着是一种常量。
在命名的时候也会看到使用下划线作为名字的开头部分,这种命名风格会体现在封装识别符中,如此一来以单下划线开始的名字会作为一个类或一个模块的内部用法,而不会默认作为公开接口的组成部分。
第三:
在写代码时可以使用#井号来些代码中的注释内容,从而提升代码中歧义或不明白现象的解释。
注释的内容可以使用单行注释,也可以多行注释,这就根据你要说的话多少来自有裁决。
多行注释依然使用的是#号字符,而不是多行字符串。有一些代码中常会使用多行字符串来写多行注释,这样不是一个好的习惯。下面会介绍一下多行字符串的文档化功用。
文档化工作中,Python 提供了集成支持,意思就是可以直接在源代码中书写文档化内容,这种机制就叫做“文档字符串”。采用的是三引号对儿句法,这样可以书写多行文本内容,主要使用在如下三个地方:
第一个文档化:模块文档
当文档字符串作为模块的第一个语句时,会称为模块的帮助文档内容。书写文档字符串的格式是,第一行会作为总结性的标题内容,然后增加一个空行,接着新起一行来写详细的内容。
第二个文档化:函数文档
第三个文档化:类的文档和方法的文档
文档字符串的内容会可以直接被 Python 中的 help()内置函数引用,现在你们知道帮助文档的内容来自哪里了吧。文档字符串的官方标准是 PEP257 文献,当然也有一些文档化工具,这里我们就不介绍了。