引言
代码强迫症…
这里的命名规范参考 PEP8
代码编码
- 代码文件规范。文件编码和 Python 编码格式全部为
utf-8
,在 Python 代码的开头,要统一加上# -*- coding: utf-8 -*-
。
在 Pycharm 中创建对应文件模板,如下:
1 | # -*- coding: utf-8 -*- |
效果如下:
- Python 代码中,非 ascii 字符的字符串,请需添加 u 前缀:
编码规范
命名规范
- 包名、模块名、局部变量名、函数名 均为:全小写+下划线式驼峰 示例
this_is_var
- 全局变量:全大写+下划线式驼峰示例:
GLOBAL_VAR
- 类名:首字母大写式驼峰 示例:
ClassName()
- 变量名命名:尽量体现变量的数据类型和具体意义,变量名、类名取名必须有意义,严禁用单字母,变量名不要用系统关键字,
- 建议:bool变量一般加上前缀 is_ 如:is_success
import 顺序
- 标准库
- 第三方库
- 项目本身
- (之间空行分隔)
注: - 尽量不要引用
models 内部 定义顺序
- All database fields
- Custom manager attributes
- class Meta
- def (str)
- def save()
- def get_absolute_url()
- Any custom methods
异常捕获处理原则
- 尽量只包含容易出错的位置,不要把整个函数 try catch
- 对于不会出现问题的代码,就不要再用 try catch了
- 只捕获有意义,能显示处理的异常
- 能通过代码逻辑处理的部分,就不要用 try catch
- 异常忽略,一般情况下异常需要被捕获并处理,但有些情况下异常可被忽略,只需要用 log 记录即可,可参考一下代码:
空格的使用
总体原则,避免不必要的空格。
- 各种右括号前不要加空格。
- 逗号、冒号、分号前不要加空格。
- 函数的左括号前不要加空格。如
Func(1)
。 - 序列的左括号前不要加空格。如
list[2]
。 - 操作符左右各加一个空格,不要为了对齐增加空格。
- 函数默认参数使用的赋值符左右省略空格。
- 不要将多句语句写在同一行,尽管使用‘;’允许。
if/for/while
语句中,即使执行语句只有一句,也必须另起一行。
其他代码规范
- 提前判断并 return,减少代码层级,增强代码可读性
- 缩进。4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。
- 类和 top-level 函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其他地方尽量不要再空行。