加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

3大利器推荐,帮你写出规范漂亮的Python代码

发布时间:2019-02-15 04:05:56 所属栏目:优化 来源:奔跑的鳄鱼
导读:副标题#e# Python学了好久,但是拿出来review的代码好像总是长的不够俊美,不够工整!因此标准化的代码规范就显得尤为重要。今天就来推荐3个利器,python界广泛认同的代码风格规范PEP8和两个超牛的工具pylint和black,分别用于代码风格规范检测和自动优化。
副标题[/!--empirenews.page--]

Python学了好久,但是拿出来review的代码好像总是长的不够俊美,不够工整!因此标准化的代码规范就显得尤为重要。今天就来推荐3个利器,python界广泛认同的代码风格规范PEP8和两个超牛的工具pylint和black,分别用于代码风格规范检测和自动优化。

1、代码风格规范PEP8

首先讲一讲为什么要使用PEP8,我们先来看下面这段代码,在相关函数定义后,它是可以正常编译执行的,但是这段代码的怪异风格无论是让别人阅读还是自己阅读都会感到很难受。这就需要一种普遍认同的代码风格规范,对行长度、缩进、多行表达式、变量命名约定等内容进行统一,这就是PEP8的意义所在。

3大利器推荐,帮你写出规范漂亮的Python代码 

需要说明的是,PEP 8中有一些规范是为了方便阅读,而有一些规范实实在在地影响着代码的性能、容错率或者重构难度。

3大利器推荐,帮你写出规范漂亮的Python代码 

比如上面这段代码,foo函数仅在满足条件的情况下有返回值、bar函数仅在不满足条件的情况下有返回值,这样的代码兼容性会比较差,正确的做法是保持代码一致性,,函数中的返回语句都应该返回一个表达式,或者都不返回:

3大利器推荐,帮你写出规范漂亮的Python代码 

关于PEP8就简单介绍到这里,有兴趣的朋友可以自行查阅文档。当我们打开文档的时候会发现PEPE 8规范的内容非常多、非常细。

作为一名新手如果要一条条解读、一条条记住这些规定实在不是件容易的事情。然而养成良好的代码编写习惯对新手来说又是十分重要的。

下面我们就正式进入主题,介绍两个简单又实用的代码自动化检测和优化工具,可以帮助我们快速规范自己的代码风格。

2、自动检测工具Pylint

Pylint 是一个检查违反 PEP8 规范和常见错误的库,它会自动查找不符合代码风格标准和有潜在问题的代码,并在控制台输出代码中违反规范和出现问题的相关信息。

1).安装与使用

与python的其他库一样,直接 pip install pylint 即可完成安装,另外anaconda自带pylint,所以如果安装过anaconda不必再单独安装此库。

pylint的使用也非常简单,最基本的用法直接在控制台输入 pylint 路径/模块名 即可对相关模块的代码风格规范 进行检查,检查结果会在控制台输出。

建议结合 pylint --help 的提示进行学习和检索。介绍完pylint的基本情况,我们来结合一个实例进行详细说明。

2).实例演示说明

这里我找了自己刚学python时写的一段代码进行测试:

  1. import pandas as pd 
  2.  
  3. data = [] 
  4. char_replace_dict = {':':'  ', '(':'(', ')':')', ',':','} 
  5.  
  6. with open('xmq_survey.txt', 'r', encoding = 'utf-8') as file: 
  7.  for line in file.readlines(): 
  8.    for key, value in char_replace_dict.items(): 
  9.      line = line.replace(key, value)#原来这个是深度引用 
  10.      #这条代码比自己写的简介的多,也更python 
  11.    data.append(line) 
  12.  
  13. with open('survey.txt', 'w', encoding = 'utf-8') as file: 
  14.  for line in data: 
  15.    file.write(line) 
  16.  
  17. raw_data = pd.read_table('survey.txt', delimiter = '    ', header = None) #查看read_table函数的用法 
  18. raw_data.columns = ['Name', 'Raw Info'] 
  19. raw_data.count() 
  20. print('successful') 

乍一看好像没什么大问题,但是经过pylint检查后却给出了一堆问题提示(下图),我们来看检查结果,每行以大写字母+冒号开头的信息都是一处反馈提示。

3大利器推荐,帮你写出规范漂亮的Python代码 

其中开头的大写字母表示错误类型(主要有CRWEF几类);以逗号间隔的两个数字表示发现问题的位置(行和列);其后是对问题的具体描述,括号里的内容称为message id,可以简单理解为错误类型的详细分类,通过

pylint --help-msg= 指令可以查看这个问题的的详细信息 。

C——违反代码风格标准;

R——代码结构较差;

W——关于细节的警告;

E——代码中存在错误;

F——导致Pylint无法继续运行的错误。

例如,我们执行 pylint --help-msg=trailing-newlines 指令,会在控制台输出对 trailing-newlines 这种问题的详细描述:

3大利器推荐,帮你写出规范漂亮的Python代码 

pylint输出的最后一行是其对本次检测的评分,满分为10分,可以看到我的代码本次评分为0分T_T。

既然知道了自己的代码哪里不规范,就去针对性地改正吧,根据提示结果首先将函数参数赋值 = 两边的空格去掉,再将多余的空行去掉,然后运行一下pylint再次进行检测,得到如下结果:

3大利器推荐,帮你写出规范漂亮的Python代码 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读