大家好,又见面了,我是你们的朋友全栈君。
1.1. Flake8——Python静态代码检查工具 Flake8 是由Python官方发布的一款辅助检测Python代码是否规范的工具,相对于目前热度比较高的Pylint来说,Flake8检查规则灵活,支持集成额外插件,扩展性强。Flake8是对下面三个工具的封装:
PyFlakes:静态检查Python代码逻辑错误的工具。
Pep8: 静态检查PEP8编码风格的工具。
NedBatchelder’s McCabe script:静态分析Python代码复杂度的工具。
不光对以上三个工具的封装,Flake8还提供了扩展的开发接口。
官方文档:https://pypi.python.org/pypi/flake8/
——参考:Python静态代码检查工具Flake8
1.2. yapf——python代码格式化工具
YAPF(Yet Another Python Formatter)是Google开源的一个用来格式化Python代码的工具,可以一键美化代码。支持2种代码规范:
PEP8 Google style
2.1. 安装 进入cmd(快捷键win+R),依次输入如下命令:
pip install flake8
pip install yapf
2.2. 配置vscode 1、打开settings.json文件
打开settings.json,加入如下配置:
"python.linting.flake8Enabled": true,
"python.formatting.provider": "yapf",
"python.linting.flake8Args": ["--max-line-length=248"],
"python.linting.pylintEnabled": false
3.1. yapf使用
1、在VS Code中,打开某个python文件,如下:
按下快捷键 Alt+Shift+F ,即可自动格式化代码,效果如下:
3.2. flake8使用 1、保存/打开py文件时,自动检测,并显示结果
注:如果同时打开多个py文件,那么此处显示所有打开的PY文件的检测结果,如下所示
2、cmd命令: flake8 文件名
注:命令行启动检测结果与自动结果一致,格式不同而已
3.3. flake8命令行详解
1、McCabe 复杂度默认情况下是不会输出的,必须携带参数 flake8 a.py –max-complexity=5
2、以通过 –ignore 忽略指定输出 flake8 a.py –ignore E501,E231,E203
3、通过 –select 参数设置只展示指定输出 flake8 a.py –select F401
3.4. vscode 自动检测复杂度的方法 1、 settiongs.json中添加参数–max-complexity=5 2、 自动检测时,就包括复杂度检测结果了 详见如下:
Flake8 基础错误返回码一共有三类:
E***/W***:PEP8 中的 error 和 warning,例如:
.\readCfg.py:32:24: W291 trailing whitespace .\readCfg.py:34:5: E265 block comment should start with ‘# ’ .\readCfg.py:38:1: W293 blank line contains whitespace .\readCfg.py:39:28: E231 missing whitespace after ‘,’ .\readCfg.py:42:1: W293 blank line contains whitespace
F***:通过 PyFlakes 检测出的 error,其实 PyFlakes 本身是不提供错误返回码的,flake8 对 pyflakes 返回的错误消息进行了分类,例如:
.\HeartBeatController.py:10:5: F841 local variable ‘i’ is assigned to but never used .\HeartBeatController.py:11:5: F841 local variable ‘j’ is assigned to but never used .\HeartBeatController.py:13:5: F841 local variable ‘ii’ is assigned to but never used
C9**:通过 McCabe 检测出的代码复杂度,例如:
.\dealwithDB.py:343:1: C901 ‘getWhereResult’ is too complex (9)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/194584.html原文链接:https://javaforall.cn