嗨,我是兰若,今天在检查代码的时候,发现了一个很严重但是大家平时却不重视的问题,就是编码格式规范,很多人在平时写python脚本的时候,
总是胡乱发挥,想怎么命名就怎么命名,,这样就导致后续其他的人在看他的代码的时候很痛苦,完全不知道这个家伙写的是什么,除了这种情形之外,还有其他情形,比如代码拉下来后,看到有个文件少了一个换行,于是赶紧换行一下,其实这个文件什么都内容没有改,但是仍然会变成蓝色文件名,作为一个变更被追踪,所以项目之初,就应该有一个编码格式规范供大家查阅,这里我简单的总结了以下几种:
以下是将上述内容转换为 Markdown 格式的版本:
Python 编码规范
代码布局
-
统一使用 4 个空格缩进。
-
单行最大长度为 100。
-
行数超过规定时,建议用小括号
()
将多行内容连接起来,而不推荐使用反斜杠\
进行连接。 -
不要在代码末尾加分号,也不要用分号将两条命令写在同一行。
-
空行使用:
-
函数之间用两个空行隔开。
-
类之间用两个空行隔开。
-
类中方法用一个空行隔开。
-
函数中不同逻辑代码块之间可适当插入空行。
-
空格使用:
-
在二元运算符两边都要有空格。二元运算包括:算术(
+ - * / **
),赋值(=, +=, -=
),比较(==, <, >, !=, in, not in, is, is not
),逻辑运算(and, or, not
),位运算(&, |, !, ~, >>, <<
)。 -
函数关键字参数
=
两侧不需要空格。例:res = func(name="Tom")
。 -
逗号后面要加空格,但如果后面是小括号则不用。例:
List=[1, 2, 4]
。 -
冒号前不加空格,冒号后要加空格。但是切片里前后都不可加空格。例:
Dict = {key: value}
。 -
不要为对齐赋值语句而使用的额外空格。
命名规范
-
普通变量使用下划线分隔命名法,即蛇形命名法。例:
max_value
。 -
变量名和 Python 关键字冲突,在变量末尾追加下划线。例:
type_
。 -
避免使用双下划线开头并结尾的名称,该命名方式为 Python 保留字。例:
__init__
用于类初始化。 -
常量用全大写字母,用下划线连接。例:
MAX_VALUE
。 -
函数名遵循蛇形命名法。例:
def get_user_info
。 -
类名使用驼峰命名法。例:
class ControllerService
。 -
类中私有属性和方法用单下划线开头。该定义仅为君子约定,实例化可以访问。例:
def _private_fun()
。 -
类中不希望被继承的变量用双下划线开头。例:
__user_info
。 -
模块应该用简短全小写的名字,如果为了提升可读性,下划线也是可以用的。
-
包使用简短全小写的名字,但不建议用下划线。
函数设计
-
函数设计要尽量短小,100 行是一个参考值。
-
一个函数只做一件事,保证函数语句粒度的一致性。
-
禁止使用可变类型作为函数参数默认值。
模块导入
- 一个
import
语句导入一个模块。
注释规范
-
代码块注释使用
#
,接口注释使用"""
。 -
块注释应该至少离开代码 2 个空格,
#
后面跟一个空格。 -
公共函数,重要的函数必须写接口注释。
-
逻辑复杂,难以理解,脚本代码等情况必须要有注释。
-
代码修改要同步更新注释。