深入浅析Python代码规范性检测


Posted in Python onJuly 31, 2020

一定要注重代码规范,按照平时的代码管理,可以将Python代码规范检测分为两种:

  1. 静态本地检测:可以借助静态检查工具,比如:Flake8,Pylint等,调研了一下,用Flake8的相对较多,功能满足,本文将使用Flake8
  2. git:可借助git hooks,本文推荐使用pre-commit。

 静态本地检测

Flake8包装了Pyflakes、Pycodestyle和McCabe,也可以自定义插件。功能包括:

  • 检查代码是否符合PEP8
  • 检查是否包含语法错误和未使用的变量和导入
  • 检查代码的复杂度

pip install flake8

配置

推荐在pycharm中配置flake8:

深入浅析Python代码规范性检测

参数说明:

  • Program中填写Flake可执行文件的具体路径
  • arguments中可添加自定义参数,比如设置每行的最大字符数,过滤某些文件(夹)等。

安装完了之后单击就可以检测了:

深入浅析Python代码规范性检测

执行检测之后,如果出现 exit code 0 就说明代码规范,否则可按照提示进行整改。

pre-commit

官网: https://pre-commit.com/

介绍:

使用git的话,可以使用pre-commit钩子,在调用 git commit 命令时会自动执行脚本进行检测,若代码出错,则不会commit成功。

作用:

  • git commit命令之前对代码进行规范性检测
  • 按照配置,对一些不符合规范的代码自动更新为规范的(比如:填充空格、更新import等)
  • 提示更新之后仍不符合规范的代码

安装

pip install pre-commit

Linux中安装完成即可执行pre-commit命令,Windows中需将.exe的路径添加至环境变量,方可执行pre-commit命令。

配置

在项目根目录下添加.pre-commit-config.yaml文件。

可参考官网样例,:

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
 rev: v2.3.0
 hooks:
 - id: check-yaml
 - id: end-of-file-fixer
 - id: trailing-whitespace
- repo: https://github.com/psf/black
 rev: 19.3b0
 hooks:
 - id: black
- repo: https://github.com/pre-commit/pre-commit-hooks
 rev: v2.3.0
 hooks:
 - id: flake8
  args:
  - --max-line-length=120

具体的配置可结合官网或github中的说明文档进行相关配置更新。

安装

执行 pre-commit install 命令,会在.git/hook路径下生成pre-commit文件,这样就保证了pre-commit安装成功,可以正常使用了。

然后执行:

更新配置文件只需要执行 pre-commit install 即可。

使用

配置完成之后,在 git commit 之前都会执行刚才的配置,可根据执行的结果来更新或者提交代码。

到此这篇关于Python代码规范性检测的文章就介绍到这了,更多相关Python代码规范性检测内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python和C语言混合编程实例
Jun 04 Python
Python中实现对Timestamp和Datetime及UTC时间之间的转换
Apr 08 Python
python定时器(Timer)用法简单实例
Jun 04 Python
Python导出DBF文件到Excel的方法
Jul 25 Python
使用Python操作MySQL的一些基本方法
Aug 16 Python
Python的自动化部署模块Fabric的安装及使用指南
Jan 19 Python
给你选择Python语言实现机器学习算法的三大理由
Nov 15 Python
用python简单实现mysql数据同步到ElasticSearch的教程
May 30 Python
python使用phoenixdb操作hbase的方法示例
Feb 28 Python
Python学习笔记之视频人脸检测识别实例教程
Mar 06 Python
Python实现堡垒机模式下远程命令执行操作示例
May 09 Python
python自动化测试之如何解析excel文件
Jun 27 Python
python使用Word2Vec进行情感分析解析
Jul 31 #Python
Python爬虫基于lxml解决数据编码乱码问题
Jul 31 #Python
Python如何定义有可选参数的元类
Jul 31 #Python
Python爬虫爬取糗事百科段子实例分享
Jul 31 #Python
Python如何对齐字符串
Jul 30 #Python
Python3爬虫关于代理池的维护详解
Jul 30 #Python
Python读写压缩文件的方法
Jul 30 #Python
You might like
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
动手学习无线电
2021/03/10 无线电
JQery jstree 大数据量问题解决方法
2010/03/09 Javascript
javascript中的float运算精度实例分析
2010/08/21 Javascript
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
offsetHeight在OnLoad中获取为0的现象
2013/07/22 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
js实现用户注册协议倒计时的方法
2015/01/21 Javascript
js阻止移动端页面滚动的两种方法
2017/01/25 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
2017/02/05 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
python创建文件备份的脚本
2018/09/11 Python
python执行精确的小数计算方法
2019/01/21 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
美国女性奢华品牌精品店:INTERMIX
2017/10/12 全球购物
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
一些PHP的面试题
2015/05/06 面试题
大学本科毕业生求职简历的自我评价
2013/10/09 职场文书
环境科学专业个人求职信
2013/12/15 职场文书
给民警的表扬信
2014/01/08 职场文书
艺术设计专业个人求职信
2014/04/10 职场文书
工厂车间标语
2014/06/19 职场文书
岗位说明书怎么写
2014/07/30 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
群众路线剖析材料
2014/09/30 职场文书
工伤事故处理协议书怎么写
2014/10/15 职场文书
故宫导游词
2015/01/31 职场文书
2015年度电厂个人工作总结
2015/05/13 职场文书
2015年房产经纪人工作总结
2015/05/15 职场文书
初中生物教学随笔
2015/08/15 职场文书