新人融入团队的必备 python 技巧,python 编码规范,滚雪球学 Python 第 4 季 12 篇
python 是非常灵活的语言,所以不同的人编写出的代码差异化会很大,正因如此,所以需要一些基本规范,大家都去遵守,这样才能在多人协作开发中保持一致性。
本文就为大家梳理一下 python 行业里面达成基本共识的一些规范。
所有命名规范参考 Python 官方 PEP8 编码规范。
python 编码规范之命名规范
命名规范建议按照下面风格进行。
变量名:全部小写字母,多个单词可以用下划线分割;命名空间在模块或者函数内的,使用单下划线开头;私有变量使用双下划线,尽量不用输字符 l
(L
小写 ),O
(o
大写 ),I
(i
大写)这些易混淆的字符,命名时尽量体现变量的数据类型和具体意义,除循环计数、计数器、迭代器以外不要用单字符名称,例如变量 a
。
模块名:全部小写字母,多个单词使用下划线分隔,例如 help_moudle
。包名:全部小写字母,一般使用点 .
进行分隔,包名不建议使用下划线,可以使用公司域名作为唯一性标识,例如 com.baidu.help
。类名:每个单词的首字母都大写(大驼峰命名法),例如 MyClass
,与大驼峰命名法对应的还有小驼峰命名法,即第一个单词首字母小写,其余单词首字母大写。函数名和方法名:全部小写字母,参考变量命名规则即可。常量:全部大写字母,多个单词可以使用下划线。全局变量:全部大写字母;异常类名:异常类也属于类,所以遵循类名命名规则,但建议使用 Error
作为后缀。判断类变量:一般增加前缀 is
,例如 is_error
。
排版规范
缩进:4 个空格,目前很多编辑器已经支持(或者可以设置)一个 Tab
等于 4 个空格。
空格的使用:在 python 代码编写的地方,很多都会用到空格,这里的总体原则就是避免不必要的空格。
()
,[]
,{}
括号内不要空格;=
赋值符前后都有一个空格,但赋值符出现在函数默认参数位置,省略左右空格,例如my_func(name="橡皮擦")
;逗号
,
,冒号:
,分号;
前不要有空格;函数,列表,元组,字典,集合的左括号前不要有空格,例如
my_list[1]
,my_dict["name"]
;
空行的使用:
顶级定义,例如函数、类的定义都空 2 行;
导入模块代码块的前后空 2 行;
类中的方法之间空 1 行;
其余位置按照代码逻辑,如有需要自行空 1 行。
断行的规则:所谓断行,就是在 python 文件中要求多少个字符就进行折行,这条一般使用编辑器自动格式化实现
。python 要求一行代码最多 79 个字符(文档字符串或者注释是 72 个字符),一般使用续行符 \
,但是更多时候建议在括号里面进行断行,就不用续行符了。
模块导入规范:
import 部分,按照标准库,第三方库,自己编写的库依次导入;
不要在一条 import 语句中,导入多个库;
注释规范
这个注释也有规范,直接学习官方的注释风格即可,例如下述代码截取:
可以看到文档注释使用三引号标记,其中第一行与第二行中间存在 1 个空行,然后折行的内容与三引号对其,最后的三引号自己在一行。查阅了很多内置的方法,都是如此,那我们学习过来即可。
如果文档注释仅有一行,保持一行注释即可,下述代码是案例展示。
剩下的注释就是块注释与行注释了,比较简单,都是使用 # 注释内容
来实现。
其它补充说明
不要乱用括号,例如 if 语句中进行简单的判断,不需要括号。
建议写类的时候,显式的从
object
继承,例如下述代码。
不要在循环中使用
+
或者+=
操作字符串
由于字符串是不可变的,所以上述操作符会频繁的创建临时对象,可以先将每个字符串存入列表,在后在循环结束,使用 "".join
连接。
给临时代码增加 TODO 注释,方法如下
尽量使用
is
或者is not
替换==
,例如if x is not None
效率优于if x
。
异常捕获中,在
except
语句中尽量使用具体的Exception
,异常代码中try
内代码要少。
使用
startswith()
、endswith()
代替切片进行序列前缀或后缀的检查,例如下述代码:
更多精彩
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/64f87dcfa89dce1a4707a2d15】。文章转载请联系作者。
评论