100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Python的pep8(代码规范)

Python的pep8(代码规范)

时间:2022-05-26 00:51:54

相关推荐

Python的pep8(代码规范)

Python的pep8-代码规范

1、代码布局设计

1.1缩进

A、使用四个空格来进行缩进

B、换行的时候可以使用反斜杠,最好的方法是使用园括号,在使用反斜杠的时候,在反斜杠的后直接回车,不能有任何空格存在

比较好的做法如下:

对准开始的分隔符:

包含更多的缩进表示是剩余部分:

悬挂缩进应该添加一个级别:

比较差的做法如下:(代码同样是可以运行的)

对于续行来说,四个空格的缩进是可选的。

可选的如下:

当使用if语句的时候,如果条件恰好的缩进为四个空格空格,那么导致后面的语句的缩进也是四个空格,那么这种情况下是可以接受的,如下所示:

没有额外的缩进:

添加一个注释来进行分割缩进,做到语法高亮显示:

在续行中添加额外的缩进:

成对的小括号,中括号在多行的结构中可以写成多行,然后括号在第一个不为空白的位置结束。如下:

或者对齐第一个字符的位置结束,如下:

1.2 tab和空格的选择

关于tab的空格的选择,在python2中是可以混用的,但是在python3中,只能用一种风格。

1.3 最大行长度

行的最大长度为79个字符

在书写文档或者是注释的时候,行长度应该控制在72个字符。

反斜杠在有的时候是适用的,例如在参数很长,但是不能隐式的使用多行的时候,如下反斜杠的使用:

确保在合适的时候将连续的行进行分开,最好的位置是操作符之后,而不是在操作符之前,如下:

1.4 空行

Top level函数和类的定义的时候,空两行。

类中方法的定义空一行。

在函数中谨慎使用空行来表示相关的逻辑段。

无关的函数之间用一个空行进行分割。

1.5 源文件编码

在源文件中一直使用utf-8编码,在python2中使用ascll编码。

文件,在python2 中使用ascll编码,在python3中使用utf-8编码

1.6 导入

Import经常使用单独的行,如下:

或者使用如下的方式:

Import总是在文件的最上行,在模块的注释和docstring之后,在模块的全局变量之前。

Import可以按照以下顺序进行组织:

A标准类库import

B第三方import

C本地类库import

在每个组导入之后,可以用空行进行分割

把所有__all__相关类型的声明放在import之后

推荐使用绝对导入,可读性强,如下:

对于复杂的封装布局来说,相对导入也是可以接受的,主要是使用绝对导入的时候路径太长,如下:

当导入一个类的时候,可以使用如下的方式:

当以上的写法导致本地名称冲突,可以写成如下:

并且使用"myclass.MyClass" and"foo.bar.yourclass.YourClass"。

在导入模块的时候,应该避免通配符的存在,如下:

2、字符串引号

在对于字符串的标示中,使用双引号还是单引号是没有区别的,主要就是两者混合使用从而避免反斜杠的出现。

3、在表达式和语句中使用空格

3.1 避免使用空格情况

A. 在小括号,中括号,大括号中避免使用空格

B. 在逗号,分好,冒号之前不需要空格

C. 在切片的时候,避免使用空格,在扩展的切片中,必须使用相同的空格个数,如下所示:

D.函数的左括号前不要添加空格:

E. 中括号前不要添加空格

F. 操作符左右各一个空格,不要为了追求一致从而添加空格个数

3.2 其他建议

A. 避免在任何结尾添加空白。

B. 在下列操作符中左右各留空白

C. 如果操作符优先级不同,注意在操作符左右留空白,特别是高优先级和低优先级的

D. 在使用函数的时候,赋值和默认值之间不需要空格

E. 不要将多语句写在同一行

4、注释

在修改的代码的时候,务必修改注释。

注释必须是英文,最好是完整的句子,首字母大写

4.1 块注释

在一段代码前增加注释,在#后添加一个空格,段落之间只有一个#作为行间隔

4.2 行注释

在使用行注释的时候,在代码句子结束之后至少两个空格,然后用#开头后跟一个空格

在上面例子中,表示不要使用无效注释,主要是说明其目的

4.3 文档注释

在所有的公共模块,函数,类,方法中加入文档注释,这些注释写在def之后。

在进行多行注释的时候,注意“”“结束的时候,必须独占一行,如下:

当文档注释是一行的时候,确保开始的““”和“”“在同一行中。

5、命名规范

使用单独的小写字母(b)

使用单独的大写字母(B)

使用小写字母(lowercase)

使用小写字母和下划线(lower_case_with_underscores)

使用大写字母(UPPERCASE)

使用大写字母和下划线(UPPER_CASE_WITH_UPPERCASE)

驼峰式写法(CamelCase):在使用缩写的时候,大写优于小写例如HTTPServer优于HttpServer

首字母大写,然后使用下划线是一种丑陋的写法

5.1 避免使用的名称

在写变量的时候,尽量避免小写的l和大写字母O和大写字母I,主要原因是容易和数字中1,0相混淆

5.2 包和模块名称

模块尽量使用简短的全部小写的名称,如果可以增加可读性那么可以使用下划线,python的包不推荐使用下划线,但是在引用其他语言写的扩展包中可以使用下划线来表示区分

5.3 类名称

类名称主要遵循为CapWords约定,表示为首字母大写

5.4 异常名称

异常归于类,从而也要遵循类名的规范,主要是在后缀上必须添加“Error“

5.4 全局变量名

全局变量只在模块类有效,和function命名相同

5.5 方法名称

方法名称全部为小写,下划线是可选的(在增加可读性的基础上使用)

5.6 方法变量

类的方法第一个参数总是self

类方法的静态变量总是为crs

如果一个方法的参数和保留字相冲突,那么在后面添加下划线进行区分

5.7 常量

常量命名全部使用大写,可以使用下划线进行分割

6、编码建议

单独比较的时候使用is或者is not,不要使用==进行比较。

当实现比较的方法的时候,最好全部实现

__eq__,__ne__,__lt__,__le__,__gt__,__ge__),而不要单独实现一个。

使用startswith() and endswith()代替切片进行序列前缀或后缀的检查。比如

Yes: if foo.startswith(‘bar’):优于

No: if foo[:3] == ‘bar’:

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

Yes: if isinstance(obj, int): 优于

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。