pep8 python 编码方式_PEP8——Python代码规范

姓名:张轩

学号:20011214440

转载自:https://blog.csdn.net/lanchunhui/article/details/49797685

【嵌牛导读】最近工作中越来越认识到代码规范的重要性,会很大程度提高自己的代码质量和可读性,遂找到代码规范分享给大家

【嵌牛鼻子】Python,代码规范化

【嵌牛提问】如何写出规范性强、可读性高的代码?

【嵌牛正文】

统一且设计良好的代码规范,是一种优良的编程习惯。PyCharm这一Python IDE使用的正是著名的PEP8代码规范,我们会看到,当有不符合规范的代码出现时,编译器会以灰色下划波浪线给出相关提示,本文即告诉你如何写出没有灰色警告线的至少看上去很美的代码样式。

希望大家看完文章后能有所收获,提高代码的规范性,便于之后参与大型工程时与工友交流。

a5e848ab3c92

图1 灰色下滑波浪线示例

缩进(indentation)

使用四个空格表示每个缩进级别。

a5e848ab3c92

图2 良好的缩进示例

a5e848ab3c92

图3 不好的缩进示例

最大行长度

所有行的最大长度均为79个字符。

a5e848ab3c92

图4 良好的换行示例

使用正确的换行位置。推荐的位置在二元操作符(binary operator,如下述代码中的and、or以及%)之后,而不是在它们之前:

a5e848ab3c92

图5 良好的换行示例

空行

顶级函数(当前文件中的第一个函数)或者顶级类(当前文件的第一个类)之前要有两个空行

定义在类内部的函数(成员函数)之间要留有一个空行

可以使用额外的空行(但要注意节制)以区分不同的函数组,

在一堆只有一行的函数之间不要使用空行(比如一些函数的空实现)

在函数内部使用空行,来标识不同的逻辑单元

import

在独立的行中导入不同的包

a5e848ab3c92

图6 正确的import示例

a5e848ab3c92

图7 错误的import示例

但从一个包中添加不同的模块或者函数也是允许的:

a5e848ab3c92

图8 一个包中可添加多个模块或函数

import文件应当总是位于文件的首部,仅在模块备注和文档之后,在模块的全局变量和常量之前的位置

import文件的顺序:

1. 标准库(如sys、os)

2. 相关的第三方的库(如numpy、pandas、matplotlib)

3. 自定义的.py文件或者自定义的库

以组的形式标识上述三种import文件,也即是用一个空行隔开

推荐使用绝对路径包含,因为可读性更好,并且不易出错。

字符串

在python中,不对单引号和双引号作区分,PEP的代码规范也不对此有所推荐。任选其一,统一使用即可。然而,当一个字符串包含单引号或者双引号时,使用另外一种方式避免转义符(\)的使用,以提高可读性。

表达式中的空格

在下述条件下,避免使用空格:

紧跟着大括号、中括号和小括号之前

a5e848ab3c92

图9 正确空格使用示例

a5e848ab3c92

图10 错误空格使用示例

紧连着逗号、分号、冒号之前

a5e848ab3c92

图11 正确空格使用示例

a5e848ab3c92

图12 错误空格使用示例

切片中的冒号

在切片中冒号可视为一个二元操作符(binary operator),两边应用等数量的空格。

a5e848ab3c92

图13 正确空格使用示例

a5e848ab3c92

图14 错误空格使用示例

其他的建议

总是在如下的二元操作符的两边使用单空格:

赋值:=

增量赋值:+=, -=

比较:==, , !=, <>, in , is

布尔:and, or, not

不要使用空格,当被用来标识一个关键字参数(使用函数)或者一个默认参数赋值(定义函数)

文档

为所有公共模块或者函数、类以及方法编写文档。不必为非公共方法编写doc文档,但应有一个注释描述算法的功能,这条注释应当出现在def之后

结尾的"""应当独占一行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值