购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 Python的语法特点

Python语言在使用时,在命名规范、代码缩进、编码规则以及注释等方面有自己的约定和特点。接下来进行详细介绍。

2.2.1 命名规范

命名规范在编写代码中起到很重要的作用,虽然不遵循命名规范程序也可以运行,但是使命名规范可以更加直观地了解代码所代表的含义。

1)模块名尽量短小,并且全部使用小写字母,可以使用下划线分隔多个字母。例如,game_main、game_register都是推荐使用的模块名称。

2)包名尽量短小,并且全部使用小写字母,不推荐使用下划线。例如,com.crmsoft、comcrm,com.crm.vip都是推荐使用的包名称,而com_crmsoft是不推荐的。

3)类名采用单词首字母大写形式(即Pascal风格)。Pascal是以纪念法国数学家布莱士·帕斯卡(Blaise Pascal)而命名的一种编程语言,Python中的Pascal命名法就是根据该语言的特点总结出来的一种命名方法。例如,定义一个借书类,可以命名为BorrowBook。

4)模块内部的类采用下划线“_”+Pascal风格的类名组成。例如,在BorrowBook类中的内部类,可以使用_BorrowBook命名。

5)函数、类的属性和方法的命名规则同模块类似,也是全部使用小写字母,多个单词间用下划线“_”分隔。

6)常量命名时全部采用大写字母,可以使用下划线。

7)使用单下划线“_”开头的模块变量或者函数是受保护的,在使用from xxx import*语句从模块中导入时这些变量或者函数不能被导入。

8)使用双下划线“__”开头的实例变量或方法是类私有的。

说明:使用单下划线开头的模块变量或函数是受保护的,在使用import*from语句从模块中不能导入。使用双下划线开头的实例变量或方法是类私有的。这部分内容将在后续章节中详细介绍。

2.2.2 代码缩进

Python不像其他程序设计语言(如Java或者C语言)采用大括号“{}”分隔代码块,而是采用代码缩进和冒号“:”区分代码之间的层次。

缩进可以使用空格键或者﹤Tab﹥键实现。使用空格键时,通常情况下采用4个空格作为一个缩进量,而使用﹤Tab﹥键时,则采用一个﹤Tab﹥键作为一个缩进量。通常情况下建议采用空格进行缩进。

在Python中,对于类定义、函数定义、流程控制语句,以及异常处理语句等,行尾的冒号和下一行的缩进表示一个代码块的开始,而缩进结束,则表示一个代码块的结束。

Python对代码的缩进要求非常严格,同一个级别的代码块的缩进量必须相同。如果不采用合理的代码缩进,将抛出SyntaxError异常。例如,代码中有的缩进量是4个空格,还有的是3个空格,就会出现SyntaxError错误。

部分Python编辑器(如IDLE、Spyder、NetBeans、Notepad++、PyCharm等)能根据所输入的代码层次关系自动缩进代码,提高编码效率。

2.2.3 编码规范

Python中采用PEP 8作为编码规范,其中PEP是Python Enhancement Proposal的缩写,翻译过来是Python增强建议书,而“PEP 8”中的“8”表示版本号。PEP 8是Python代码的样式指南。

Python对书写格式有严格的要求,不按照格式书写有可能导致程序不能正确运行,例如,缩进是必须遵循代码块层次要求的。良好的编程风格会显著提升程序的可读性。

1.分号

不要在行尾添加分号“;”,也不要用分号将两条命令放在同一行。

2.长语句行

除非遇到长的导入模块语句或者注释里的URL,建议每行不宜超过80个字符。

对于超长语句,允许但不提倡使用反斜杠连接行,建议在需要的地方使用圆括号来连接行。

例如:判断一个年份是否为闰年

如果一个文本字符串在一行放不下,可以使用圆括号来实现隐式行连接。

在注释中,即使超过80字符,也要将长的URL或导入长的模块语句放在同一行中。

3.括号

不建议使用不必要的括号。除非用于实现行连接,否则不要在返回语句或条件语句中使用括号。

4.空行

顶级定义之间空两行,比如函数或者类定义。

类内部的方法定义之间,类定义与第一个方法之间,建议空一行。

函数或方法之间,如果有必要,可以空一行。

5.空格

对于赋值(=)、比较(==、﹤、﹥、!=、﹤﹥、﹤=、﹥=、in、not in、is、is not)、布尔(and、or、not)等运算符,在运算符两边各加上一个空格,可以使代码更清晰。而对于算术运算符,可以按照自己的习惯决定,但建议运算符两侧保持一致。例如:

不建议在逗号、分号、冒号前面加空格,但建议在它们后面加空格(除了在行尾之外)。例如:

参数列表、索引或切片的左括号前不要加空格。

当等号用于表示关键字参数或默认参数值时,不建议在其两侧使用空格。

不建议用空格来垂直对齐多行间的标记,因为这会成为维护的负担(适用于:、#、=等)。

6.文档字符串

文档字符串是Python语言独特的注释方式。文档字符串是包、模块、类或函数中的第一条语句。文档字符串可以通过对象的__doc__成员被自动提取。

书写文档字符串时,在其前、后使用三重双引号“””””或三重单引号“’’’”。

一个规范的文档字符串应该首先是一行概述,接着是一个空行,然后是文档字符串剩下的部分,并且应该与文档字符串的第一行的第一个引号对齐。

文档字符串通常用于提供在线帮助信息。

7.模块导入

每个import语句只导入一个模块,尽量避免一次导入多个模块。

8.异常处理

适当使用异常处理结构能够提高程序的容错性,但不能过多地依赖异常处理结构,适当的显式判断还是必要的。

2.2.4 注释规则

注释是指在代码中对代码功能进行解释说明的标注性文字,让他人了解代码实现的功能,从而帮助程序员更好地阅读代码。注释的内容将被Python解释器忽略,并不会在执行结果中体现出来。

在Python中,通常包括3种类型的注释,分别是单行注释、多行注释和中文声明注释。

1.单行注释

在Python中,使用“#”作为单行注释的符号。从符号“#”开始直到换行为止,“#”后面所有的内容都作为注释的内容,并被Python编译器忽略。

语法:#注释内容

单行注释可以放在要注释代码的前一行,也可以放在要注释代码的右侧。例如,下面的两种注释形式都是正确的。

第一种形式:

第二种形式:

说明:在添加注释时,一定要有意义,即注释能充分解释代码的功能及用途。注释可以出现在代码的任意位置,但是不能分隔关键字和标识符。

2.多行注释

在Python中,并没有一个单独的多行注释标记,而是将包含在一对三引号('''……''')或者(”””……”””)之间的代码都称为多行注释。这样的代码解释器将忽略。由于这样的代码可以分为多行编写,所以也作为多行注释。

语法格式如下:

或者:

多行注释通常用来为Python文件、模块、类或者函数等添加版权、功能等信息,例如,下面代码将使用多行注释为程序添加功能、开发者、版权、开发日期等信息。多行注释也经常用来解释代码中重要的函数、参数等信息,以便于后续开发者维护代码。多行注释其实可以采用单行代码多行书写的方式实现。

【例2-1】 多行注释示例。

3.中文编码声明注释

在Python中编写代码的时候,如果用到指定字符编码类型的中文编码,需要在文件开头加上中文声明注释,这样可以在程序中指定字符编码类型的中文编码,不至于出现代码错误。所以,中文注释很重要。

Python 3.x提供的中文注释声明语法格式为:#-*-coding:编码-*-或者#coding=编码。

例如保存文件编码格式为UTF-8,可以使用下面的中文编码声明注释。

一个优秀的程序员,为代码加注释是必须要做的工作。但要确保注释的内容都是重要的事情,无用的代码是不需要加注释的。在上面的代码中,“-*-”没有特殊的作用,只是为了美观才加上的,所以这段代码也可以使用“coding:utf-8”代替。 wQQkd405lUlFDpavlAp2FWvg7YuDgUSKMGOYlseUDw192mgC0NQCHda1wo4TpYBD

点击中间区域
呼出菜单
上一章
目录
下一章
×