Python PEP8标准
Posted 小纯洁的兄弟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python PEP8标准相关的知识,希望对你有一定的参考价值。
1.编码
- 如无特殊情况,文件一律使用utf-8编码
- 如无特殊情况,文件头部必须添加# -*- coding:utf-8 -*- 标志
2.代码
- 统一使用四个空格缩进
- 每行代码不超过80个字符
- 自然语言使用双引号,如input里面,或者错误信息,正则表达式使用原生的双引号r" ",
- 机器标识使用单引号,如dict里面的key,因此代码里面多数应该使用单引号。
- 文档字符串使用三个双引号。""" """
3.空行
- 模块级函数和类定义之间空两行
- 类成员函数之间空一行
- 可以使用多个空行分隔多组相关函数
- 函数中可以用空行分隔出逻辑相关的代码
class A: def __init__(self): pass def hello(self): pass def main(): pass
4.import语句
- import 语句应当分行书写
- import语句应当使用absolute import
- import语句应当放在文件头部,置于模块说明及docstring之后,全局变量之前
- import语句应该按照顺序排列,没住之间用一个空格分隔
#Right import os import sys from subprocess import Popen, PIPE from foo.bar import Bar #False import os, sys from ..bar import Bar
5.空格
在二元运算符两边各空一格:[=, - ,+ =, > , in , is ,not , and]
i = i + 1 x = x * x + 2 c = (a + b) * (a - b)
函数的参数列表中,","之后要有空格,默认值等号两边不要添加空格,左括号之后,右括号之前不要有空格
def complex(real, image=0): pass
6.换行
python支持括号内的换行,这时有两种情况:
1.第二行缩进到括号的起始处
2.第二行缩进四个空格,适用于起始括号就换行的情形
a = list(var1, var2, var3) a=list( var1, var2, var3)
7.注释
#号后需空一格,不要使用无意义的注释
x = x + 1 # 边框加粗一个像素
8.docstring
1.所有公共模块,函数,类,方法都应该有docstring。
9.命名规范
- 应避免使用小写字母l,大写字母O或I单独作为一个变量,以区分数字1和0.
- 包和模块使用全小写命名,,尽量不要使用下划线
- 类名使用CamelClass命名风格,内部类可用一个下划线开头
- 函数使用下划线分隔的小写命名
- 常量使用以下划线分隔的大写命名
MAX_OVERFLOW = 100 class FooBar: def foo_bar(): pass
- 单字符命名应该尽量避免,除了计数器和迭代器
- 模块名尽量小写命名,首字母小写,尽量不要使用下划线(除非多个单词且数量不多的情况)
- 类名:首字母大写,私有类可以用一个下划线开头
- 将相关的类和顶级函数放在同一个模块中,没必要限制一个类一个模块
- 函数名:一律小写,如有多个单词一律用下划线隔开
- 私有函数在函数名前加一个下划线
- 变量名尽量小写,如有多个单词,用下划线隔开
- 常量采用全大写,如有多个单词,使用下划线隔开
#False s = "Hello World" l = 1 import Decoder #True class Farm(): class Animal(): class _PrivateFarm(): def run(): count = 0 school_name = "xidian" MAX_CLIENT = 100
10.程序设计规范
1.尽量不要直接将代码写在模块顶层,在执行主程序之前总是检查:if __name__ = ‘__main__‘,这样模块被导入主程序时就不会被执行了
#wrong do_something() #right def main(): do_something(): if __name__ == ‘__main__‘: main()
所有的顶层代码在模块导入时都会被执行,要小心不要去调用函数,创建对象,或者执行哪些不该被执行的操作
尽量不要用+号拼接字符串,使用join函数拼接
在不复杂的情况下,尽量多用列表生成式,可以是代码更清晰
尽量使用map和filter等内置函数而不是自己去写循环
正则表达式之前一律加r,正则表达式使用之前一律编译好。
以上是关于Python PEP8标准的主要内容,如果未能解决你的问题,请参考以下文章
Pycharm 如何自动调整 Python 代码符合 pep8 编码规范