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,这是一种无需运行程序即可检查类型注释错误的方法。
评论已关闭。