PEP8是Python的命!Black一键格式化,缩进换行全搞定,代码美到哭
2026/6/10 0:59:57 网站建设 项目流程

最先推荐一个称作black的库, 它被用来把代码格式弄成符合pep8规范的代码。

一 代码编排

1 进行缩进, 采用 4 个空格来形成缩进, 此功能编辑器均能够予以完成, 绝不使用 Tap, 而且更不可将 Tap 与空格交叉混合使用。

尽量让 每行的范围的最大长度设定为79 , 倘若换行时 可以采用反斜杠, 最好是使用圆括号。换行标记位置于在操作符的后面敲回车。

3类与top - level函数定义之间要空出两行, 类之中的方法定义之间需空一行, 函数内部逻辑不相关的段落之间得空一行, 其他地方尽量不要再有空行。

二 文档编排

模块内容之顺序为, 模块说明以及, 其他定义。当中部分, 依标准、三方以及自身编写顺序逐个排放, 其间空出一行呐。

2 不要在一句中多个库,比如 os, sys不推荐。

倘若选取from XX XX来引用库, 那么能够省略‘.’, 然而皆有可能出现命名冲突的状况, 在这种时候便需要采用XX。

三 空格的使用

总体原则,避免不必要的空格。

1 各种右括号前不要加空格。

2 逗号、冒号、分号前不要加空格。

3 函数的左括号前不要加空格。如Func(1)。

4 序列的左括号前不要加空格。如list。

5 操作符左右各加一个空格,不要为了对齐增加空格。

6 函数默认参数使用的赋值符左右省略空格。

7 不要将多句语句写在同一行,尽管使用‘;’允许。

四 注释

在总的原则方面, 那种错误的注释, 其效果还比不上没有注释, 所以, 当一组代码出现了某些变化的时候, 我们要做的第一件事情, 就是要去更改注释!

务必使用英文来搞注释哩, 最优当属完整的句子, 开头字母得大写, 句子末尾要有终止符号, 终止符号后面跟两个空格呀 , 开启下一句。要是是短语, 可以省去终止符号。

1块注释, 是在一段代码之前所增添的注释, 需在‘#’之后加上一空格, 段落之间是以仅有‘#’的行来进行间隔, 就如同这样:

: .Input : : None

进行2行注释, 于一句代码之后添加注释。举例来讲: x等于x加上1, 此为#x后面是注释内容。

但是这种方式尽量少使用。

3 避免无谓的注释。

五 文档描述

对于所有的, 那些属于共有的模块、函数、类以及方法,都需要去写注释;而那些并非共有的内容, 虽然没有写注释的必要, 但是呢, 也能够进行注释的撰写, 注释要写在def的下一行。

2 如果要换行,参考如下例子,详见PEP 257

""" a

plotz says to the first.

"""

六 命名规范

总得来讲的原则是, 新编写的代码务必要按照接下来的命名风格去做, 现有的库的编码尽可能维持风格。

尽量单独去使用, 小写字母“l”, 大写字母“O”这类容易混淆的字母。

2 模块命名尽量短小,使用全部小写的方式,可以使用下划线。

3 包命名尽量短小,使用全部小写的方式,不可以使用下划线。

4 类的命名使用的方式,模块内部使用的类采用的方式。

5 异常命名使用+Error后缀的方式。

全局变量, 尽量仅在模块之内具备有效性, 就如同C语言里的那般。实现的方法存在两种, 其一为这种机制, 其二是前缀一个下划线。

7 函数命名使用全部小写的方式,可以使用下划线。

8 常量命名使用全部大写的方式,可以使用下划线。

9类的属性, 也就是方法以及变量, 其命名采用全部小写的形式, 并且能够使用下划线。

九类的属性存在三种作用域, 有 non-和 API, 能够理解为 C++里的, , , 在 non-属性之前, 前缀一条下划线。

有 11 类的属性, 要是它和关键字名字出现冲突的情况, 那就后缀一下划线, 尽量别采用缩略等其他的方式。

存在这样的情况, 对于某些类当中特定的属性而言, 鉴于要以防万一和子类的属性命名产生冲突, 所以要在这些属性的前面加上两条下划线作为前缀, 比如说在类Foo里面去声明__a的时候, 当进行访问操作时, 只能够通过Foo.这种方式来进行, 以此达到避免产生歧义的目的。然而要是子类的名称同样也叫做Foo的话, 那么就全然没有办法了。

十三类的那个方法的头一个参数势必得为官已斧, 表示自家, 然而静态方法的头一个参数势必要为官已斧, 表示类已斧。

七 编码建议

编码之时, 考虑到其他实现所存在的效率等方面的问题, 举例来说, 运算符‘+’在()当中效率是很高的, 然而在都是中效率却极为低, 所以应当采用.join()这样的方式。

尽量去运用‘is’‘is not’来替换‘==’, 像是若x is not None这种情况要好过if x , 这是要尽可能达成的。

对3进行使用, 使用基于类的异常, 在这种情况下, 每个模块或者包都存在着自身的异常类, 而此一异常类来自于继承。

4 异常中不要使用裸露的,后跟具体的。

5 异常中try的代码尽可能少。比如:

try:

value =

:

(key)

else:

(value)

要优于

try:

Too broad!

()

:

Will also catch by ()

(key)

6 运用()以及()去替代切片来开展序列前缀或者后缀的查验。比如说:

Yes: if foo.('bar'):优于

No: if foo == 'bar':

7 使用()比较对象的类型。比如

Yes: if (obj, int): 优于

No: if type(obj) is type(1):

8 判断序列空或不空,有如下规则

Yes: if not seq:

if seq:

优于

No: if len(seq)

if not len(seq)

9 字符串不要以空格收尾。

10 二进制数据判断使用 if 的方式。

八 PEP8 格式化ctrl+alt+L 快捷键格式化

其它参考文章

常用PEP8编码规范和建议经验分享

PEP8 编码规范中文版D7.MiNgChEn.PRo
0605.MiNgChEn.PRo
59.MiNgChEn.PRo
746B.MiNgChEn.PRo
01E3.MiNgChEn.PRo
C4D.MiNgChEn.PRo
B1C1.MiNgChEn.PRo
55AC.MiNgChEn.PRo
D4D.MiNgChEn.PRo
AF7C.MiNgChEn.PRo
082.MiNgChEn.PRo
74.MiNgChEn.PRo
146.MiNgChEn.PRo
451.MiNgChEn.PRo
6EA8.MiNgChEn.PRo
665.MiNgChEn.PRo
14.MiNgChEn.PRo
46F.MiNgChEn.PRo
D5C.MiNgChEn.PRo
CA58.MiNgChEn.PRo
75.MiNgChEn.PRo
03.MiNgChEn.PRo
69.MiNgChEn.PRo
AAA4.MiNgChEn.PRo
B21.MiNgChEn.PRo
5347.MiNgChEn.PRo
E.MiNgChEn.PRo
FC3D.MiNgChEn.PRo
3CFA.MiNgChEn.PRo
738.MiNgChEn.PRo
4B.MiNgChEn.PRo
88.MiNgChEn.PRo
20D.MiNgChEn.PRo
9A8.MiNgChEn.PRo
C6C0.MiNgChEn.PRo
5F0C.MiNgChEn.PRo
C640.MiNgChEn.PRo
F43.MiNgChEn.PRo
95C8.MiNgChEn.PRo
FDC.MiNgChEn.PRo
CC.MiNgChEn.PRo
09.MiNgChEn.PRo
03F0.MiNgChEn.PRo
AB.MiNgChEn.PRo
B9.MiNgChEn.PRo
1A.MiNgChEn.PRo
0DD.MiNgChEn.PRo
99A.MiNgChEn.PRo
8902.MiNgChEn.PRo
AF.MiNgChEn.PRo
456.MiNgChEn.PRo
1F.MiNgChEn.PRo
2E4.MiNgChEn.PRo
45.MiNgChEn.PRo
22.MiNgChEn.PRo
6D6F.MiNgChEn.PRo
A1A.MiNgChEn.PRo
1B.MiNgChEn.PRo
84.MiNgChEn.PRo
DB.MiNgChEn.PRo
7B91.MiNgChEn.PRo
10.MiNgChEn.PRo
983F.MiNgChEn.PRo
BD89.MiNgChEn.PRo
3AD5.MiNgChEn.PRo
44.MiNgChEn.PRo
5135.MiNgChEn.PRo
CDA.MiNgChEn.PRo
95C.MiNgChEn.PRo
004.MiNgChEn.PRo
9D7.MiNgChEn.PRo
9CD.MiNgChEn.PRo
C7B0.MiNgChEn.PRo
40C0.MiNgChEn.PRo
0CD.MiNgChEn.PRo
1.MiNgChEn.PRo
378.MiNgChEn.PRo
33A.MiNgChEn.PRo
4007.MiNgChEn.PRo
FC14.MiNgChEn.PRo
17B.MiNgChEn.PRo
E7.MiNgChEn.PRo
338.MiNgChEn.PRo
83E.MiNgChEn.PRo
F305.MiNgChEn.PRo
833F.MiNgChEn.PRo
820.MiNgChEn.PRo
7D.MiNgChEn.PRo
E9.MiNgChEn.PRo
F966.MiNgChEn.PRo
7EB.MiNgChEn.PRo
A06.MiNgChEn.PRo
F18.MiNgChEn.PRo
497.MiNgChEn.PRo
FB.MiNgChEn.PRo
2EE.MiNgChEn.PRo
11D.MiNgChEn.PRo
9.MiNgChEn.PRo
85.MiNgChEn.PRo
B18.MiNgChEn.PRo
C66E.MiNgChEn.PRo
714.MiNgChEn.PRo
F12.MiNgChEn.PRo
FAE.MiNgChEn.PRo
B13A.MiNgChEn.PRo
BDCB.MiNgChEn.PRo
E6.MiNgChEn.PRo
6F.MiNgChEn.PRo
678.MiNgChEn.PRo
641.MiNgChEn.PRo
8C.MiNgChEn.PRo
9FC.MiNgChEn.PRo
14A.MiNgChEn.PRo
5.MiNgChEn.PRo
24.MiNgChEn.PRo
2.MiNgChEn.PRo
3BF.MiNgChEn.PRo
C234.MiNgChEn.PRo
26F1.MiNgChEn.PRo
D.MiNgChEn.PRo
72F.MiNgChEn.PRo
B4.MiNgChEn.PRo
41.MiNgChEn.PRo
2810.MiNgChEn.PRo
83.MiNgChEn.PRo
6B9.MiNgChEn.PRo
3035.MiNgChEn.PRo
E7E2.MiNgChEn.PRo
CC1B.MiNgChEn.PRo
D65.MiNgChEn.PRo
1EE0.MiNgChEn.PRo
7.MiNgChEn.PRo
52CD.MiNgChEn.PRo
6EFE.MiNgChEn.PRo
EC2C.MiNgChEn.PRo
3.MiNgChEn.PRo
0BD.MiNgChEn.PRo
C.MiNgChEn.PRo
F.MiNgChEn.PRo
CA4.MiNgChEn.PRo
0.MiNgChEn.PRo
823A.MiNgChEn.PRo
8.MiNgChEn.PRo
4.MiNgChEn.PRo
B7.MiNgChEn.PRo
C96.MiNgChEn.PRo
DE7.MiNgChEn.PRo
76B.MiNgChEn.PRo
1BB.MiNgChEn.PRo
274.MiNgChEn.PRo
BAB1.MiNgChEn.PRo
0DA9.MiNgChEn.PRo
F617.MiNgChEn.PRo
323.MiNgChEn.PRo
12BD.MiNgChEn.PRo
F1.MiNgChEn.PRo
4A.MiNgChEn.PRo
1B5D.MiNgChEn.PRo
543.MiNgChEn.PRo
7B.MiNgChEn.PRo
958.MiNgChEn.PRo
17C.MiNgChEn.PRo
4E.MiNgChEn.PRo
F599.MiNgChEn.PRo
EE.MiNgChEn.PRo
832.MiNgChEn.PRo
4E81.MiNgChEn.PRo
3CF.MiNgChEn.PRo
AB8.MiNgChEn.PRo
EEA1.MiNgChEn.PRo
3D4.MiNgChEn.PRo
2D.MiNgChEn.PRo
F4D2.MiNgChEn.PRo
F482.MiNgChEn.PRo
D98B.MiNgChEn.PRo
33.MiNgChEn.PRo
F39.MiNgChEn.PRo
FD5.MiNgChEn.PRo
BC7D.MiNgChEn.PRo
8ED.MiNgChEn.PRo
D47.MiNgChEn.PRo
4F5.MiNgChEn.PRo
D5C1.MiNgChEn.PRo
FBA3.MiNgChEn.PRo
31.MiNgChEn.PRo
D0.MiNgChEn.PRo
47F.MiNgChEn.PRo

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询