Python代码规范性检测
一定要注重代码规范,按照平时的代码管理,可以将Python代码规范检测分为两种:
- 静态本地检测:可以借助静态检查工具,比如:Flake8,Pylint等,调研了一下,用Flake8的相对较多,功能满足,本文将使用Flake8
- git:可借助git hooks,本文推荐使用pre-commit。
静态本地检测
Flake8包装了Pyflakes、Pycodestyle和McCabe,也可以自定义插件。功能包括:
- 检查代码是否符合PEP8
- 检查是否包含语法错误和未使用的变量和导入
- 检查代码的复杂度
安装
pip install flake8
配置
推荐在pycharm中配置flake8:

参数说明:
- Program中填写Flake可执行文件的具体路径
- arguments中可添加自定义参数,比如设置每行的最大字符数,过滤某些文件(夹)等。
安装完了之后单击就可以检测了:

执行检测之后,如果出现 exit code 0 就说明代码规范,否则可按照提示进行整改。
pre-commit
介绍:
使用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代码规范参考文献: http://www.runoob.com/w3cnote/google-python-styleguide.html https:/ ... 
- python 代码检测工具
		对于我这种习惯了 Java 这种编译型语言,在使用 Python 这种动态语言的时候,发现错误经常只能在执行的时候发现,总感觉有点不放心. 而且有一些错误由于隐藏的比较深,只有特定逻辑才会触发,往往导 ... 
- 30行Python代码实现人脸检测
		参考OpenCV自带的例子,30行Python代码实现人脸检测,不得不说,Python这个语言的优势太明显了,几乎把所有复杂的细节都屏蔽了,虽然效率较差,不过在调用OpenCV的模块时,因为模块都是C ... 
- python极简代码之检测列表是否有重复元素
		极简python代码收集,实战小项目,不断撸码,以防遗忘.持续更新: 1,检测列表是否有重复元素: 1 # !usr/bin/env python3 2 # *-* coding=utf-8 *-* ... 
- 用 git 钩子,检测代码规范性(eslint、standard)
		最终实现效果说明:用 git commit 提交代码之前,利用 pre-commit git 钩子,实现代码规范检测(eslint.standard 规范),符合规范之后才可以提交到 git 仓库.这 ... 
- 项目规范性检测工具Lint
		项目规范性检测工具lint.bat 一.Lint基本概念介绍 Android Lint是SDK Tools 16 (ADT 16)之后才引入的工具,通过它对Android工程源代码进行扫描和检查,可发 ... 
- 用 Python 和 OpenCV 检测图片上的条形码
		用 Python 和 OpenCV 检测图片上的的条形码 这篇博文的目的是应用计算机视觉和图像处理技术,展示一个条形码检测的基本实现.我所实现的算法本质上基于StackOverflow 上的这个问 ... 
- python代码风格-PEP8
		转载自http://www.douban.com/note/134971609/ Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下 ... 
- 【转】python代码风格-PEP8
		转载自http://www.douban.com/note/134971609/ Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下 ... 
随机推荐
- web3.js支持SimpleChain跨链调用
			SimpleChain的跨链协议已经对外开放很久了,很多应用也已经慢慢支持Simplechain的跨链.最近社区开发者web3.js中集成了Simplechain的跨链接口,开发者只需用npm安装包文 ... 
- uni-app网络请求
			对于 GET 方法,会将数据转换为 query string.例如 { name: 'name', age: 18 } 转换后的结果是 name=name&age=18. 对于 POST 方法 ... 
- C#利用反射实现简单记事本功能插件
			效果图: 源码下载:https://github.com/doyoulaikeme/DotNetSample 
- 师兄大厂面试遇到这条 SQL 数据分析题,差点含泪而归!
			写在前面:我是「云祁」,一枚热爱技术.会写诗的大数据开发猿.昵称来源于王安石诗中一句 [ 云之祁祁,或雨于渊 ] ,甚是喜欢. 写博客一方面是对自己学习的一点点总结及记录,另一方面则是希望能够帮助更多 ... 
- AbstractQueuedSynchronizer(AQS)抽丝剥茧深入了解JUC框架原理
			目录 简介 Lock简单实用 主体框架 原理解析 独占锁 AQS数据结构 CLH数据结构 acquire实现步骤 addWaiter acquireQueued shouldParkAfterFail ... 
- 1-The next outbreak we're not ready
			When I was a kid, the disaster we worried about most was a nuclear war. [wen aɪ wəz ə kɪd] 
- java 基本语法(一) 关键字与标识符
			1.java关键字的使用定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)特点:关键字中所字母都为小写具体哪些关键字: 2.保留字:现Java版本尚未使用,但以后版本可能会作为关键字使用 ... 
- 数据可视化之PowerQuery篇(五)PowerQuery文本处理技巧:移除和提取
			https://zhuanlan.zhihu.com/p/64419762 每当拿到原始数据,不如意十有八九,快速准确的清洗数据也是必备技能,数据清洗正好是 PowerQuery 的强项,本文就来介绍 ... 
- 神经网络结构:DenseNet
			论文地址:密集连接的卷积神经网络 博客地址(转载请引用):https://www.cnblogs.com/LXP-Never/p/13289045.html 前言 在计算机视觉还是音频领域,卷积神经网 ... 
- .Net Core 读取文件中文乱码
			首先,要知道.Net Core和.Net Framework两个环境下很多东西是不同的,接下来要说的这个就是其中一个. Encoding.Default,在 .NET Framework 中,Def ... 
