1. 一致性的建议
打破一条既定规则的两个好理由
当应用这个规则将导致代码可读性下降,即使对于某人来说他已经习惯于按照这条规则来阅读代码了
为了和周围的代码保持一致而打破规则(也许是历史原因)
2. 代码的布局
缩进
4个空格
代码行
行最大长度 : 79字符
推荐长度 : 72字符
分割方式 : “” , “()” , “{}”
空行
两行空行分割顶层函数和类的定义
一行空行分割方法或函数
额外空行分割相关函数群
类定义与第一个方法定义需要一行空行
编码
万年 “UTF-8”
导入
先import标准模块,再from … import第三方模块(绝对路径) ,最后from … import自建模块
每组导入空一行,一行导入一个包[模块,类等]
空格
紧贴各类括号
紧贴逗号,分号,冒号前
紧贴函数调用参数列表前开放式括号
紧贴再索引或切片括号
二元操作符或运算符或逻辑等两边各留一个空格
默认参数或关键参数”=”不留空格
3. 注释
注释块
与相应代码有着相同缩进
行内注释
与代码被注释代码同行,以”#”+” “开头
文档注释
结尾处 “”” 单独成行
版本注记
模块文档字符串之后,所有代码之前,上下空行分割
4. 命名
约定
模块名 : 不含下划线 ; 小写 ; 剪短
类名,异常名 : 首字母大写单词串
方法,函数 : 第一个字母小写的首字母大写单词串
属性,实例,变量 : 小写字母串
继承
私有 : 双下划线开头
非公有 : 单下划线开头
命名冲突
不降低可读性,能改就改,不能就在末尾加单个下划线或者数字
5. 设计建议
使用”is”或”is not”进行对”None”的单值比较
使用字符串方法代替字符串模块
使用startswith()和endswith()检查前后缀而不是使用切片
使用isinstance()判断对象是否是字符串而不是使用type()
判断空序列或字典不要使用len()
书写字符串文字不要依赖有意义的后置空格
不要用”==”比较布尔值
文章转自:http://www.cnblogs.com/erliang/p/4065605.html