《Effective Python 第二版》第二条:遵循PEP8风格指南

遵循PEP8风格指南

《Python Enhancement Proposal #8》(8号增强提案),又叫PEP8,它是针对Python代码格式而编订的风格指南。尽管可以在保证语法正确的前提下随意编写Python代码,但是,采用一致的风格来书写也可令项目更加易懂、更加易读、采用和其他Python程序员相同的风格来写代码,也可以使项目更利于多人协作。即便代码只会由你自己阅读,遵循这套风格也依然可以令后续的修改变得更容易一些。 PEP8地址:http://www.python.org/dev/peps/pep-0008 下面列出几条绝对应该遵守的规则。 空白:Python中的空白会影响代码的含义。它们会影响代码的清晰程度。

    能用space来表示缩进,而不要用tab(制表符); 和语法相关的每一层缩进都用4个空格来表示; 每行的字符数不应超过79; 对于占据多行的长表达式来说,除了首行之外的其余各行都应该在通常的缩进级别之上再加4个空格; 文件中的函数与类之间应该用两个空行隔开; 在同一个类中,各方法之间应该用一个空行隔开; 在使用下标来获取列表元素、调用函数或给关键字参数赋值时,不要在两旁加空格; 为变量赋值时,符号左右两侧只写一个空格。 命名:PEP 8提倡采用不同的命名风格来编写Python代码中的各个部分,提升可读性。 函数、变量及属性应该用小写字母来拼写,各单词之间以下划线相连,例如:red_apple; 受保护的实例属性,应该以单个下划线开头,例如:_red_apple; 私有的实例属性,应该以两个下划线开头,例如:__red_apple; 类与异常,应该以每个单词首字母均大写的形式来命名,例如:RedApple; 模块级别的常量,应该全部采用大写字母来拼写,各单词之间以下划线相连,例如:RED_APPLE; 类中的实例方法,应该把首个参数命名为self,以表示该对象自身; 类方法的收割参数,应该命名为cls,以表示该类自身。 表达式和语句: 采用内联形式的否定词,而不要把否定词放在整个表达式的前面,例如,应该写if a is not b而不是if not a is b; 不要通过检测长度的方法(如if len(somelist) == 0)来判断somelist是否为[]或"等空值,而是应该采用if not somelist这种写法来判断,它会假定:空值将自动评估为False; 检测sonelist是否为[1]或’hi’等空值时,也应如此,if somelist语句会默认把非空的值判断为True; 不要编写单行的if语句、for循环、while循环以及except复合语句,而是应该分成多行来书写; import语句应该总是放在文件开头; 引入模块时,总是应该使用绝对名称,而不应该根据当前模块的路径来使用相对名称。例如,引入bar包中的foo模块时,应该完整地写出from bar import foo,而不应该简写为import foo; 如果一定要以相对名称来编写import语句,那就采用明确的写法:from.import.foo; 文件中的那些import语句应该按顺序划分为三个部分,分别表示标准库模块、第三方模块以及自用模块。在每一部分之中,各import语句应该按模块的字母顺序来排列。 注:Pylint(http://www.pylint.org/)是一款流行的Python源码静态分析工具。它可以自动检查受测代码是否符合PEP 8风格指南,而且还能找出Python程序里的多种常见错误。 要点: 当编写Python代码时,总是应该遵循PEP 8风格指南; 与广大Python开发者采用同一套代码风格,可以使项目更利于多人协作; 采用一直的风格来编写代码,可以领后续的修改工作变得更为容易。
经验分享 程序员 微信小程序 职场和发展