使用 flake8 确保 Python 代码的一致性

了解更多关于在我们涵盖七个 PyPI 库的系列中解决常见 Python 问题的信息。
146 位读者喜欢这篇文章。
Team checklist

Python 是当今使用最流行的编程语言之一,这有充分的理由:它是开源的,用途广泛(例如 Web 编程、商业应用程序、游戏、科学编程等等),并且拥有一个充满活力和专注的社区为其提供支持。正是这个社区让我们在 Python 包索引 (PyPI) 中拥有如此庞大且多样化的软件包,以扩展和改进 Python 并解决不可避免出现的故障。

在本系列中,我们将研究七个 PyPI 库,它们可以帮助您解决常见的 Python 问题。今天,我们将关注 flake8,一个 linter 和 linting 平台,可确保 Python 代码的一致性。

flake8

Python 代码旨在易于阅读。因此,一致性至关重要。项目内部的一致性最为重要。我们如何强制执行这种一致性呢?

Flake8 实际上是两件事:它既是一个 linter,执行一些基本规则。更重要的是,它是一个 linting 平台,允许插件添加或更改 linting 规则。

关于 flake8 插件,最棒的事情是您无需执行任何操作,只需将它们安装到您要运行 flake8 的虚拟环境中即可。

考虑以下代码

# spew.py
print("Hello world")
# print("Goodbye universe")

如果我们在干净的虚拟环境中安装 flake8 并运行它,它将什么也不说:这个文件看起来不错。

如果我们安装 flake8-print 并运行 flake8 spew.py,我们会得到

spew.py:2:1: T001 print found.

如果我们改为安装 flake8-eradicate,我们会得到

spew.py:1:1: E800: Found commented out code:

当然,我们可以同时安装两者——并获得两个警告。

您还可以编写本地自定义插件。如果您的团队有在代码审查中不断被挑剔的本地约定,为什么不使用自定义 flake8 插件来自动化它们呢?

在本系列关于解决 Python 问题的第七篇也是最后一篇文章中,我们将关注 MyPy,这是一种无需运行程序即可检查类型注释错误的方法。

回顾本系列之前的文章

接下来阅读什么
标签
Moshe sitting down, head slightly to the side. His t-shirt has Guardians of the Galaxy silhoutes against a background of sound visualization bars.
Moshe 自 1998 年以来一直参与 Linux 社区,在 Linux “安装聚会” 中提供帮助。他自 1999 年以来一直编写 Python 程序,并为核心 Python 解释器做出了贡献。Moshe 在这些术语出现之前就一直是 DevOps/SRE,他非常关心软件可靠性、构建可重复性以及其他此类事情。

评论已关闭。

© . All rights reserved.