PEP8:Python 编码规范整理
身为一名程序员,写代码固然是很有意思的。但是别忘了,代码是写给人看的,所以代码规范就显得格外重要了。
这里介绍一下 Python 的 PEP8 标准,主要整理一些个人经常用到的代码规范。
一、缩进
每级缩进都用 4 个空格。
换行时,下一行与前面对齐。
if 过长,可以拆成几行,也对齐。
有括号的,后括号另起一行与元素对齐或顶格。
注意:不能制表符 Tab
和空格 混用,可以设置一下,将所有制表符转换为空格。(建议用空格)
二、行长
每行不超过 79 字符。
注释的行长不能超过 72 字符。
太长的就用 backslash 换行处理。
换行后开始是二元运算符。
三、空行
空行不能滥用。
顶层函数以及类定义和其他部分用两个空行隔开。
类之内的方法定义之间用一个空行隔开。
对于一组相关的函数和其他之间可以有额外的空行。
可以使用空行来区分逻辑块。
四、源代码编码
py3 用 UTF-8 ,py2 用 ASCII 。
py3 已经用了 UTF-8 ,py2 已经用了 ASCII 的源代码,不应该有编码声明。
五、import
各个 import 独立成行。
import 应该在文件最上面,在模块注释和文档字符串之后,在模块变量和常量之前。
先 import 标准库。
再 import 相关的第三方库。
最后 import 本地应用和库。
单引号双引号都一样。
六、空格
各种括号中,不要加空格。
逗号,分号,冒号之前不要加空格。
冒号作为分隔符,前后都要加空格。
函数调用的函数和括号直接不要加空格。
后面跟的是索引或者切片的中括号,a[1]。
赋值语句,前后各一个空格。
七、条件测试的格式设置
在诸如 ==
、>=
、<=
等比较运算符两边各添加一个空格,例如
if age < 4:
比下面这个好。
if age<4:
八、注释
改代码一定要改注释,保证注释最新。
注释应该是完整句子。
短注释结尾的句号可以省,块注释每一个句子都应该有句号。
句子结束的句号后应该有两个句号。
用英语写作时,遵守 Strunk and White
风格。
都用英语注释。
块注释
每一行都是 #
加一个空格。
行内注释
和语句至少两个空格。
显然的东西不加注释。
九、文档字符串
公用模块、函数、类和方法,都要写文档字符串。
"""
用来结束一个多行文档字符串应该的时候应该独立成行。
如果仅仅是一行的文档字符串,”“”
可以在同一行。
十、命名传统
避免使用 ‘l’ (小写的 L ),‘O’ (大写的欧),‘I’ (大写的哎)。
模块名:短小,全小写。
包名:短小,全小写。
其他
一行的末尾不要加空格。
二元运算符前后一个空格。
一个表达式不同优先级运算符,添加空格区别优先级。
调用函数时,作为参数不要加空格 比如 func(a=3, b=4)
而不是 func(a = 3, b = 4)
。
带箭头的函数,箭头两段各空一个。
函数声明的默认参数,只有在有 notation
的时候前后有等号,否则前后没有等号。
例如:
# 这里有等号
def func(sep: AnyStr = None): ...
# 这里没有
def func(sep=None): ...
多条语句最好不要在一行,if 之后如果只有一条语句也最好不要在一行,如果有多条,则绝对不要在一行。
致谢
版权声明:本文为博主原创文章,如有错误,恳请大家在评论区指出,在下不胜感激~如要转载注明出处即可~