基本语法
全局变量使用英文大写,单词之间加下划线:
SCHOOL_NAME = ‘Tsinghua University’ #学校名称
全局变量一般只在模块内有效,实现方法:使用__All__机制或添加一个前置下划线。
私有变量使用英文小写和一个前导下划线:
_student_name
内置变量使用英文小写,两个前导下划线和两个后置下划线:
maker
一般变量使用英文小写,单词之间加下划线:
class_name
变量命名规则:
- 名称第一字符为英文字母或者下划线
- 名称第一字符后可以使用英文字母、下划线和数字
- 名称不能使用python的关键字或保留字符
- 名称区分大小写,单词与单词之间使用下划线连接
函数和方法
函数名是英文小写,单词之间加下划线,提高可读性。
函数名不能与保留关键字冲突,如果冲突,最好在函数名后面添加一个后置下划线,不要使用缩写或单词拆减,最好的方式是使用近义词代替。
实例方法的第一个参数总是使用self。
类方法的第一个参数总是使用cls。
属性和类
类的命名遵循首字母大写(CapWords)的方式,大部分内置的名字都是单个单词(或两个),首字母大写方式只适用于异常名称和内置的常量,模块内部使用的类采用添加前导下划线的方式。
类的属性(方法和变量)命名使用全部小写的方式,可以使用下划线。公有属性不应该有前导下划线,如果公有属性与保留关键字发生冲突,在属性名后添加后置下划线。对于简单的公有数据属性,最好是暴露属性名,不使用复杂的访问属性或修改属性的方法。
如果该类是为了被继承,有不让子类使用的属性,给属性命名时可以给它们加上双前导下划线,不要加后置下划线。
为避免与子类属性命名冲突,在类的一些属性前,前缀两条下划线。比如:类Faa中声明__a,访问时,只能通过Faa._Faa__a,以避免歧义。
模块和包
模块命名要使用简短的小写英文的方式,可使用下划线来提高可读性。
包的命名和模块命名类似,但不推荐使用下划线。
模块名对应到文件名,有些模块底层使用C或C++ 书写,并有对应的高层Python模块,C/C++模块名有一前置下划线。
规定
下列运算符前后都需使用一个空格:
= + - < > == >= <== and or not
下列运算符前后不使用空格:
- / **
更多PEP8规则,请参考附录A“Python代码风格指南:PEP8”。