10个工具,帮你写出更好的Python代码

开发 开发工具
编写漂亮的Python比看起来难。 作为发布工作流程的一部分,我使用以下工具使代码可显示并消除可避免的错误。

我每天都使用这些实用程序来使我的Python代码可显示。 它们是免费且易于使用的。

编写漂亮的Python比看起来难。 作为发布工作流程的一部分,我使用以下工具使代码可显示并消除可避免的错误。

[[329548]]

1. Black

在#1,我们有Black。 Black是一个毫不妥协的Python代码重整工具。 它将确保您的代码符合PEP 8建议。

您可以使用pip3从pypi中获取Black:

  1. pip3 install --upgrade --user black 

Black具有丰富的选项,请使用黑色-h打印帮助文本。

  1. black -t py38 --check <yourfile> 

10个工具,帮你写出更好的Python代码

> Black output

要使文件修复为黑色,请在运行黑色时删除—检查选项。

2. eradicate

eradicate是一种方便的工具,用于查找注释掉的代码块,排在第二位。 您可能不再需要它们了!

您可以使用pip3从pypi根除:

  1. pip3 install --upgrade --user eradicate 

消除的选项很少,请使用消除-h打印帮助文本。

  1. eradicate <yourfile> 

10个工具,帮你写出更好的Python代码

> Eradicate output

使用-i选项可以就地修复代码。

3. vulture

哇,这些模块有令人兴奋的名字! vulture在#3处将发现无法到达的死代码,并将其清除。 我在美化管道的早期就使用了此方法。

您可以使用pip3从pypi根除:

  1. pip3 install --upgrade --user vulture 

Vulture有一些选项,请使用vulture -h打印帮助文本。

  1. vulture <yourfile> 

10个工具,帮你写出更好的Python代码

> Vulture ouput

4. coverage

coverage是Python代码分析的曾祖父! 在#4,我在发布工作流程中使用覆盖率只是为了在文件中找到无法使用assert语句执行的无法访问的代码。

您可以使用pip3从pypi获得coverage:

  1. pip3 install --upgrade --user coverage 

coverage有很多选择,我在这里使用它来查找未到达代码的行号:

  1. coverage erase # erase previous datacoverage run --branch <yourfile> # run a branch analysis coverage report -m <yourfile> # create a report 

10个工具,帮你写出更好的Python代码

> Coverage ouput

5. Pycodestyle

Pycodestyle是一个很棒的工具,可以用来挑选代码格式。 它告诉您代码与PEP-8中的建议有何不同。 因为我通常在工作流程中先运行黑色程序,所以此工具通常没有任何报告。 在第5位,这是该列表中值得添加的内容!

您可以使用pip3从pypi获取pycodestyle:

  1. pip3 install --upgrade --user pycodestyle 

Pycodestyle有很多选项,我在这里使用它来查找未到达代码的行号:

  1. pycodestyle --show-source --statistics <yourfile> 

10个工具,帮你写出更好的Python代码

> Pycodestyle ouput

6. pylint

Pylint是此列表中必不可少的工具! 在编写要发布给广大读者的代码时,我经常使用它。

您可以使用pip3从pypi获取pylint:

  1. pip3 install --upgrade --user pylint 

Pylint有很多选择。 我在这里通过可选插件使用它。 Pylint还提供了非常方便的代码评级,非常适合游戏化:)

  1. pylint --include-naming-hint=y --load-plugins=pylint.extensions.mccabe,pylint.extensions.redefined_variable_type <yourfile> 

10个工具,帮你写出更好的Python代码

> Pylint output

7. Mypy

Mypy在Python 3.8中很有用,因为它检查是否正确使用了我定义的类型提示。 如果您在Python代码中使用类型提示,则Mypy非常有用。

您可以使用pip3从pypi获取mypy:

  1. pip3 install --upgrade --user mypy 

Mypy有很多选择。 我在严格模式下在这里使用它,并将Python版本3.8指定为目标。

  1. mypy --python-version 3.8 --strict <yourfile> 

10个工具,帮你写出更好的Python代码

> Mypy output

8. Pyflakes

Pyflakes是发现错误的非常强大的程序。 到目前为止,在pyflakes中,pyflakes很少发现任何新内容,但是无论如何都不需要花费任何钱! Pyflakes不检查样式,而是检查错误。

您可以使用pip3从pypi获取pyflakes:

  1. pip3 install --upgrade --user pyflakes 

Pyflakes实际上没有其他选择,它的设计非常简单且快速。

  1. pyflakes <yourfile> 

10个工具,帮你写出更好的Python代码

> Pyflakes output

9. Doctest

Doctest是Python安装的一部分,这是很大的收获! 如果我在代码中使用了doctest,那么我想在发布前运行它。 这里有一个有趣的概念:通过文档进行测试(文字测试)。 Doug Hellmann的这篇文章提供了一些不错的背景。

无需安装Doctest。 可以从代码文件的doctest部分中配置大多数选项。 在这里,我使用-v选项进行详细输出。

  1. python3 -m doctest -v <yourfile> 

10个工具,帮你写出更好的Python代码

> doctest output

10. Bandit

Bandit是一种安全测试工具。 我将其作为最后一道防线纳入我的工作流程中,没有人愿意对安全漏洞负责!

您可以使用pip3从pypi获取强盗:

  1. pip3 install --upgrade --user bandit 

强盗有很多选择-它的配置非常容易。 在这里,我将其配置为跳过错误B101(使用断言),仅报告中度和高度错误。

  1. bandit -s B101 -ll -f screen <yourfile> 

10个工具,帮你写出更好的Python代码

11. Radon

奖励时间! Radon是一个非常不错的静态代码分析工具。 它提供了各种指标,您可能需要关注其中的一些指标。 Radon为您的模块,类和方法提供从A到F的评分。

您可以使用pip3从pypi获取ra:

  1. pip3 install --upgrade --user radon 

on有很多选择。 我在这里运行所有检查,并将所有结果打印到终端。

  1. radon cc mi raw <yourfile> -na 

10个工具,帮你写出更好的Python代码

> Radon output

我真的希望您喜欢这个故事! 也许您找到了可以使用的东西,或者您添加了一些有趣的东西,无论哪种情况,快乐的编码Pythonistas都可以!

(本文翻译自Richard Quinn的文章《10 Tools I Use to Craft Better Python Code》,参考:

https://levelup.gitconnected.com/10-tools-i-use-to-craft-better-python-code-b9a9776a7871)

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2020-08-06 00:25:38

Python代码开发

2017-08-30 19:32:08

代码程序员编程

2017-08-30 11:10:25

代码

2019-02-01 15:40:59

Python代码规范编程语言

2021-05-23 15:46:23

React代码前端

2020-07-19 08:11:54

Python代码开发

2016-05-06 10:02:33

CSSJavaScript工具

2020-06-23 07:50:13

Python开发技术

2020-06-23 07:48:18

Python开发技术

2020-07-10 15:41:41

Python代码编程语言

2020-12-19 10:45:08

Python代码开发

2020-11-11 10:12:32

大数据

2024-03-28 14:29:46

JavaScript编程

2019-04-28 11:15:36

Kubernetes开源工具

2021-05-13 14:32:32

统一通信协作远程工作

2020-01-23 20:46:37

Windows微软Windows 10

2022-07-07 09:19:24

JavaScript代码样式规则

2019-04-03 15:00:47

Python图像编辑工具

2017-10-10 16:28:51

前端CSS建议

2020-05-08 19:52:31

Reactreact.js前端
点赞
收藏

51CTO技术栈公众号