编码规范
- 不要在行尾加分号, 也不要用分号将两条命令放在同一行.
- 每行不超过80个字符,Python会将 圆括号, 中括号和花括号中的行隐式的连接起来 , 你可以利用这个特点. 如果需要, 你可以在表达式外围增加一对额外的圆括号.例如:
|
- 在注释中,如果必要,将长的URL放在一行上。
|
- 宁缺毋滥的使用括号.除非是用于实现行连接, 否则不要在返回语句或条件语句中使用括号. 不过在元组两边使用括号是可以的.
- 用4个空格来缩进代码.绝对不要用tab, 也不要tab和空格混用.
- 顶级定义之间空两行. 方法定义之间空一行.顶级定义之间空两行, 比如函数或者类定义. 方法定义, 类定义与第一个方法之间, 都应该空一行. 函数或方法中, 某些地方要是你觉得合适, 就空一行.
- 按照标准的排版规范来使用标点两边的空格.不要在逗号, 分号, 冒号前面加空格, 但应该在它们后面加(除了在行尾). 参数列表, 索引或切片的左括号前不应加空格.在二元操作符两边都加上一个空格, 比如赋值(=), 比较(==, <, >, !=, <>, <=, >=, in, not in, is, is not), 布尔(and, or, not). 至于算术操作符两边的空格该如何使用, 需要你自己好好判断. 不过两侧务必要保持一致.当’=’用于指示关键字参数或默认参数值时, 不要在其两侧使用空格.
- 块注释和行注释.最需要写注释的是代码中那些技巧性的部分. 如果你在下次 代码审查 的时候必须解释一下, 那么你应该现在就给它写注释. 对于复杂的操作, 应该在其操作开始前写上若干行注释. 对于不是一目了然的代码, 应在其行尾添加注释.为了提高可读性, 注释应该至少离开代码2个空格.
- 如果一个类不继承自其它类, 就显式的从object继承. 嵌套类也一样.
- 每个导入应该独占一行.导入总应该放在文件顶部.例如:
|
- 通常每个语句应该独占一行.
- 命名规范
- 所谓”内部(Internal)”表示仅模块内可用, 或者, 在类内是保护或私有的.
- 用单下划线(_)开头表示模块变量或函数是protected的(使用import * from时不会包含).
- 用双下划线(__)开头的实例变量或方法表示类内私有.
- 将相关的类和顶级函数放在同一个模块里. 不像Java, 没必要限制一个类一个模块.
- 对类名使用大写字母开头的单词(如CapWords, 即Pascal风格), 但是模块名应该用小写加下划线的方式(如lower_with_under.py). 尽管已经有很多现存的模块使用类似于CapWords.py这样的命名, 但现在已经不鼓励这样做, 因为如果模块名碰巧和类名一致, 这会让人困扰.
Python之父Guido推荐的规范
Type | Public | Internal |
Modules | lower_with_under | _lower_with_under |
Packages | lower_with_under |
|
Classes | Cap Words | _CapWords |
Exceptions | Cap Words |
|
Functions | lower_with_under() | _lower_with_under() |
Global/Class Constants | CAPS_WITH_UNDER | _CAPS_WITH_UNDER |
Global/Class Variables | lower_with_under | _lower_with_under |
Instance Variables | lower_with_under | _lower_with_under (protected) or __lower_with_under (private) |
Method Names | lower_with_under() | _lower_with_under() (protected) or __lower_with_under() (private) |
Function/Method Parameters | lower_with_under |
|
Local Variables | lower_with_under |
|