利用这10个工具,你可以写出更好的Python代码
我每天都使用这些实用程序来使我的Python代码可显示。 它们是免费且易于使用的。
编写漂亮的Python比看起来难。 作为发布工作流程的一部分,我使用以下工具使代码可显示并消除可避免的错误。
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789
1.Black
在#1,我们有Black。 Black是一个毫不妥协的Python代码重整工具。 它将确保您的代码符合PEP 8建议。
您可以使用pip3从pypi中获取Black:
pip3 install --upgrade --user black
Black具有丰富的选项,请使用黑色-h打印帮助文本。
black -t py38 --check

> Black output
要使文件修复为黑色,请在运行黑色时删除—检查选项。
2.eradicate
eradicate是一种方便的工具,用于查找注释掉的代码块,排在第二位。 您可能不再需要它们了!
您可以使用pip3从pypi根除:
pip3 install --upgrade --user eradicate
消除的选项很少,请使用消除-h打印帮助文本。
eradicate

> Eradicate output
使用-i选项可以就地修复代码。
3.vulture
哇,这些模块有令人兴奋的名字! vulture在#3处将发现无法到达的死代码,并将其清除。 我在美化管道的早期就使用了此方法。
您可以使用pip3从pypi根除:
pip3 install --upgrade --user vulture
Vulture有一些选项,请使用vulture -h打印帮助文本。
vulture

> Vulture ouput
4.coverage
coverage是Python代码分析的曾祖父! 在#4,我在发布工作流程中使用覆盖率只是为了在文件中找到无法使用assert语句执行的无法访问的代码。
您可以使用pip3从pypi获得coverage:
pip3 install --upgrade --user coverage
coverage有很多选择,我在这里使用它来查找未到达代码的行号:
coverage erase # erase previous datacoverage run --branch # run a branch analysis coverage report -m # create a report

> Coverage ouput
5. Pycodestyle
Pycodestyle是一个很棒的工具,可以用来挑选代码格式。 它告诉您代码与PEP-8中的建议有何不同。 因为我通常在工作流程中先运行黑色程序,所以此工具通常没有任何报告。 在第5位,这是该列表中值得添加的内容!
您可以使用pip3从pypi获取pycodestyle:
pip3 install --upgrade --user pycodestyle
Pycodestyle有很多选项,我在这里使用它来查找未到达代码的行号:
pycodestyle --show-source --statistics

> Pycodestyle ouput
6.pylint
Pylint是此列表中必不可少的工具! 在编写要发布给广大读者的代码时,我经常使用它。
您可以使用pip3从pypi获取pylint:
pip3 install --upgrade --user pylint
Pylint有很多选择。 我在这里通过可选插件使用它。 Pylint还提供了非常方便的代码评级,非常适合游戏化:)
pylint --include-naming-hint=y --load-plugins=pylint.extensions.mccabe,pylint.extensions.redefined_variable_type

> Pylint output
7. Mypy
Mypy在Python 3.8中很有用,因为它检查是否正确使用了我定义的类型提示。 如果您在Python代码中使用类型提示,则Mypy非常有用。
您可以使用pip3从pypi获取mypy:
pip3 install --upgrade --user mypy
Mypy有很多选择。 我在严格模式下在这里使用它,并将Python版本3.8指定为目标。
mypy --python-version 3.8 --strict

> Mypy output
8.Pyflakes
Pyflakes是发现错误的非常强大的程序。 到目前为止,在pyflakes中,pyflakes很少发现任何新内容,但是无论如何都不需要花费任何钱! Pyflakes不检查样式,而是检查错误。
您可以使用pip3从pypi获取pyflakes:
pip3 install --upgrade --user pyflakes
Pyflakes实际上没有其他选择,它的设计非常简单且快速。
pyflakes

> Pyflakes output
9. Doctest
Doctest是Python安装的一部分,这是很大的收获! 如果我在代码中使用了doctest,那么我想在发布前运行它。 这里有一个有趣的概念:通过文档进行测试(文字测试)。 Doug Hellmann的这篇文章提供了一些不错的背景。
无需安装Doctest。 可以从代码文件的doctest部分中配置大多数选项。 在这里,我使用-v选项进行详细输出。
python3 -m doctest -v

> doctest output
10.Bandit
Bandit是一种安全测试工具。 我将其作为最后一道防线纳入我的工作流程中,没有人愿意对安全漏洞负责!
您可以使用pip3从pypi获取强盗:
pip3 install --upgrade --user bandit
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789
强盗有很多选择-它的配置非常容易。 在这里,我将其配置为跳过错误B101(使用断言),仅报告中度和高度错误。
bandit -s B101 -ll -f screen

11. Radon
奖励时间! Radon是一个非常不错的静态代码分析工具。 它提供了各种指标,您可能需要关注其中的一些指标。 Radon为您的模块,类和方法提供从A到F的评分。
您可以使用pip3从pypi获取ra:
pip3 install --upgrade --user radon
on有很多选择。 我在这里运行所有检查,并将所有结果打印到终端。
radon cc mi raw -na

> Radon output
我真的希望您喜欢这个故事! 也许您找到了可以使用的东西,或者您添加了一些有趣的东西,无论哪种情况,快乐的编码Pythonistas都可以!
利用这10个工具,你可以写出更好的Python代码的更多相关文章
- 5款工具助你写出更好的Java代码
1.FindBugs 顾名思义,FindBugs是一款帮助开发者发现bug的工具,它是一个开源项目,遵循GNU公共许可协议,运行的是Java字节码而不是源码. 它是一款静态分析工具,它检查类或者JAR ...
- [label][翻译][JavaScript-Translation]七个步骤让你写出更好的JavaScript代码
7 steps to better JavaScript 原文链接: http://www.creativebloq.com/netmag/7-steps-better-javascript-5141 ...
- 让你用sublime写出最完美的python代码--windows环境
至少很长一段时间内,我个人用的一直是pycharm,也感觉挺好用的,也没啥大毛病 但是pycharm确实有点笨重,啥功能都有,但是有很多可能这辈子我也不会用到,并且pycharm打开的速度确实不敢恭维 ...
- 如何写出高质量的Python代码--做好优化--改进算法点滴做起
小伙伴你的程序还是停留在糊墙吗?优化代码可以显示程序员的素质欧! 普及一下基础了欧: 一层for简写:y = [1,2,3,4,5,6],[(i*2) for i in y ] 会输出 ...
- 让我们一起写出更有效的CSharp代码吧,少年们!
周末空闲,选读了一下一本很不错的C#语言使用的书,特此记载下便于对项目代码进行重构和优化时查看. Standing On Shoulders of Giants,附上思维导图,其中标记的颜色越深表示在 ...
- Java 11 正式发布,这 8 个逆天新特性教你写出更牛逼的代码
美国时间 09 月 25 日,Oralce 正式发布了 Java 11,这是据 Java 8 以后支持的首个长期版本. 为什么说是长期版本,看下面的官方发布的支持路线图表. 可以看出 Java 8 扩 ...
- Java 11 这 8 个逆天新特性教你写出更牛逼的代码!
美国时间2018年 09 月 25 日,Oralce 正式发布了 Java 11,这是据 Java 8 以后支持的首个长期版本. 为什么说是长期版本,看下面的官方发布的支持路线图表. 可以看出 Jav ...
- Java 11正式发布,这几个逆天新特性教你写出更牛逼的代码
就在前段时间,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布,可在生产环境中使用! 这无疑对我们来说是一大好的消息.作为一名java开发者来说,虽然又要去学习和了解java11 ...
- 写出形似QML的C++代码
最开始想出的标题是<Declarative C++ GUI库>,但太标题党了.只写了两行代码,连Demo都算不上,怎么能叫库呢……后来想换掉“库”这个字,但始终找不到合适词来替换.最后还是 ...
随机推荐
- 安装python包管理工具pip
安装步骤(必须已经安装过python) 1>curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 2>python get-pip ...
- 老司机带你玩转面试(2):Redis 过期策略以及缓存雪崩、击穿、穿透
前文回顾 建议前一篇文章没看过的同学先看下前面的文章: 「老司机带你玩转面试(1):缓存中间件 Redis 基础知识以及数据持久化」 过期策略 Redis 的过期策略都有哪些? 在聊这个问题之前,一定 ...
- vue中使用elmentUI的Upload组件提交文件和后台接收
1.参考此博客,希望有以下知识储备 vue的路由,跨域请求,springboot2.X,html,已经阅读elementUI官网中关于upload组件的详细介绍. 2.废话不多说,直接讲解细节. 前台 ...
- drf☞jwt自动签发与手动签发
目录 一.自动签发 二.手动签发 一.自动签发 urls from rest_framework_jwt.views import obtain_jwt_token # 使用jwt自带的登录视图 ur ...
- 通过Vue实现的todolist
和接口对接的todolist因为有后台的存在,todolist获取的数据会一直存在不丢失(不管你如何刷新页面),思路如下: 首先得先搞到接口: 通过这个接口地址可以获取整段的数据,成功err为0. 于 ...
- vue : 使用stylus less (包括sublime插件支持)
版本: vue 2.5.2 webpack 3.6.0 先说stylus. 用npm装个包. npm install stylus stylus-loader --save-dev 然后在.vue文件 ...
- 跳过Google开机设置/验证/向导
Google 的开机设置向导,亦或称作开机验证,对于刷机党来说最熟悉不过了.一般情况下,刷类原生或是原生系统,再刷 Gapps,开机就需要进行一些 Google 验证.这些验证,与国内的手机厂商所设置 ...
- windows如何解决Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
问题再现与解读 首次,使用 java 命令+任意参数 都会报这个错误,最典型的就是java -version 解读一下这个报错信息,注册表路径 Software\JavaSoft\Java Runti ...
- Java bean常见映射工具分析和比较
1. 概述 日常Java开发项目中,我们经常需要将对象转换成其他形式的对象,因此我们需要编写映射代码将对象中的属性值从一种类型转换成另一种类型. 进行这种转换除了手动编写大量的get/set代码,还可 ...
- LQB2013A03振兴中华
最近状态出了点问题呜呜呜,可能是天有点热吧加上有一点点不太舒服,,,稳住啊! 明显一个递归(但是就是不会写) 递归:(一般这种找有多少个的题,返回值都是int) 首先找变化的东西当作参数.(本题是坐标 ...