Python Enhancement Proposal # 8:Python 增强提案第8号
1、变量
1.1 全局变量使用英文大写,单词之间用下划线连接:
如:SCHOOL_NAME = 'HuNanChengShiXueYuan' #学习名称
1.2 模块内有效的全局变量使用_ALL_机制或添加一个前置下划线。
私有变量使用小写和一个前置下划线 :_student_name
内置变量使用英文小写,两个前置下划线和两个后置下划线:__maker__
一般变量使用英文小写,单词之间加下划线: class_name
2、变量命名规则:
以字母或者下划线开头
由字母下划线跟数字组成
不能使用python的关键字或保留字符
区分大小写,单词之间用下划线连接
python3 中的保留关键字:
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
3、函数和方法:
函数名:由英文小写,单词之间用下划线,提高可读性。
函数名不能与保留关键字冲突,如有冲突最好在函数名后面添加一个后置下划线,不要使用缩写或单词拆减,最好使用近义词代替。
实例方法的一个参数总是使用self
类方法的一个参数总是使用cls
4、属性和类
类名遵循首字母大写(CapWords)方式,大部分内置名都是单个词(或两个),首字母大写方式只使用与异常名称和内置的常量,模块内部使用的类采用添加前导下划线的方式。
类的属性(方法和变量)命名使用全部小写的方式,可以使用下划线。公有的属性不应该有前置下划线,如果公有属性与保留关键字发生冲突,在属性名后添加后置下划线。
对于简单的公有数据属性,最好是暴露属性名,不使用复杂的访问属性或修改属性的方法。
如果该类是为了被继承,有不让子类使用的一些属性,给属性命名时可以给他们加上前置下划线,不要加后置下划线。
为了避免与子类属性命名冲突,在类的一些属性前,前缀两条下划线。
5、模块和包
模块命名要使用简短的小写英文的方式,可以使用下划线来提高可读性。
包的命名和模块命名类似,单不推荐使用下划线。
模块名对应到文件名,有些模块底层使用C或C++书写,并有对应的高层Python模块,C/C++模块名有一前置下划线。
6、规定
下列运算符前后都需使用一个空格:
= + - < > == >= <= <== and or not
下列运算符前后不使用空格:
* / **
更多PEP8规则,请参考官方文档 https://www.python.org/dev/peps/pep-0008/
星期五,2020年2月7日