这7大神器, 让你的Python 代码更易于维护

当软件项目进 入“维护模式”时,对代码的可读性和编码标准经常就忽略了(甚至从一开始就没有建立起这些标准。)但是,在代码库中保持一致的风格和测试标准是减少维护负担的重要因素,它能确保未来的开发人员能够快速了解新的项目情况 - 并保持项目的良好运行

 保护项目未来可维护性的一个好方法就是使用外部库来检查你的代码运行状况。以下是我们最喜欢的一些用于检查代码的库(包含检查PEP 8和其他样式错误),让代码风格保持一致,并确保在项目成熟时的测试覆盖率保持在可接受范围。

检查你的代码风格

PEP 8是Python代码风格规范,它对行长度,缩进,多行表达式和命名约定等内容有明确的规范。你的团队可能也有自己的代码规则,可能与PEP 8略有不同。但是,任何代码风格都是为了在代码库中强制实施一致的标准,使其更具可读性,从而更易于维护。这里有三个库来帮助美化你的代码。

1、 Pylint

Pylint 是一个 Python 代码分析工具,它分析 Python 代码中的错误,查找不符合代码风格标准(Pylint 默认使用的代码风格是 PEP 8)和有潜在问题的代码。 。它与几个流行的编辑器和IDE很好地集成,也可以从命令行运行。

要安装,请运行 pip install pylint 。

要从命令行运行 Pylint,请运行 pylint [options] path/to/dir 或 pylint [options] path/to/module.py 。Pylint 会向控制台输出不符合代码风格标准以及错误代码的地方

你还可以调用 pylintrc 配置文件来自定义 Pylint 检查的错误。(项目地址: https://www.pylint.org/

2、Flake8

Flake8是一个“Python工具,它将PEP8,Pyflakes(类似于Pylint),McCabe(代码复杂性检查器)和第三方插件集合在一起,以检查某些Python代码的风格和质量。”

要使用Flake8,要先运行 pip install flake8 。然后运行 flake8 [options] path/to/dir 或 flake8 [options] path/to/module.py 查看其错误和警告。

与Pylint一样,Flake8允许对配置文件检查的内容进行一些自定义。它有非常清晰的文档,包括一些有用的Commit,可以作为开发工作流程的一部分自动检查代码。

Flake8能够与流行的编辑器和IDE集成,但这些指令通常在文档中并没有说明。要将Flake8与你喜欢的编辑器或IDE集成,可以在线搜索插件(例如 Sublime Text的Flake8插件)。(项目地址: http://flake8.pycqa.org/en/latest/

3、Isort

isort 可自动对 Python的 import语句进行排序和分段。可将大量的 import结构转成非常适合阅读的排版。(例如,标准库导入,第三方库导入,从你自己的项目导入等),这样可以提高可读性,而且如果你导入的库较多,还能快速找到各个库

安装 isort pip install isort ,然后运行 isort path/to/module.py 。文档中提供了许多配置选项。例如,你可以配置 isort如何处理.isort.cfg文件来执行一个库的多行导入。

与Flake8和Pylint一样,isort还提供了将其与流行的编辑器和IDE集成的插件。(项目地址: https://github.com/timothycrosley/isort

分享你的代码风格

记住从命令行手动为每个文件运行linters是一件很痛苦的事情,你可能也不太喜欢通过运行 IDE 中某个插件来实现这个功能。另外,您的同事可能更喜欢别的方式,或者可能他们最喜欢的编辑器的没有这个插件,或者你检查代码不够细致,久而久之,你们共享的代码库将变得混乱并且难以阅读。

一个很好的解决方案是使用一个库,自动将代码重新按照PEP 8规范进行格式化。我们推荐的三个库都有不同的自定义级别来控制如何格式化代码,像pylint的和Flake8,你要先测试,看看它是否存在你接受不了却无法更改的默认配置。

4、 Autopep8

Autopep8可以自动格式化你指定的模块中的代码。它将重新缩进行,修复缩进,删除无关的空白,并重构常见的比较错误(如布尔和None值)。你可以在它的文档中查看完整的更改列表

安装Autopep8,需要先运行 pip install --upgrade autopep8 。要重新格式化代码,请运行 pip install --upgrade autopep8 。然后执行 autopep8 --in-place --aggressive --aggressive <filename> 就可以重新格式化你的代码。该aggressive标志(和它们的数量),表明autopep8对你的代码风格有多少控制权。(项目地址: https://github.com/hhatto/autopep8

5、 Yapf

Yapf是重新格式化代码的另一种选择,它带有自己的配置选项列表。它与autopep8的不同之处在于它不仅仅解决了违反PEP 8规范的问题。它还重新格式化了没有违反PEP 8规范的代码,但没有一致地设置样式,可能是为了可读性而格式化得更好。

要安装Yapf,需要运行 pip install yapf 。要重新格式化代码,要运行 yapf [options] path/to/dir 或 yapf [options] path/to/module.py 。(项目地址: https://github.com/google/yapf

6、 Black

在所有的代码检查工具中,Black算是比较新的一个。它与autopep8和Yapf类似,但限制比较多,它很少有自定义选项,这是重点,这意味着你无法自定义代码风格。

Black支持Python 3.6+以上的版本,但可以格式化Python 2代码。要使用Black,请运行 pip install black 。要美化您的代码,请运行: black path/to/dir或black path/to/module.py 。(项目地址: https://github.com/ambv/black

检查代码的测试覆盖率

假如你正在编写测试,你需要确保对代码库提交的新代码进行测试,并且不会降低代码的测试覆盖率。虽然测试覆盖率的百分比不是衡量测试有效性和充分性的唯一指标,但它是确保项目中遵循基本测试标准的一种方法。为了测量测试覆盖率,我们有一个建议:使用 Coverage 这个库。

7、Coverage

Coverage有多种向你报告测试覆盖率的方式,包括将结果输出到控制台或HTML页面,并提示哪些行号没有覆盖到。你可以设置配置文件以自定义Coverage检查的内容并使其更便于运行。

要安装Coverage,请运行 pip install coverage 。要运行程序并查看其输出,请运行 coverage run [path/to/module.py] [args] ,接着你将看到程序的输出。要查看哪些代码行没有被覆盖,请运行 coverage report -m 。(项目地址: https://coverage.readthedocs.io/en/latest/

持续集成工具

持续集成(CI)是在合并和部署代码之前,自动检查代码风格错误和测试最小覆盖率的一系列过程。有许多免费或付费的工具可以自动化这个过程,本文这里就不详细介绍了。但是,由于设置CI过程是将代码块删除为更易于阅读和维护的重要步骤,因此,你不得不重视。

————————————————————————————————————
想了解更多前沿技术,想获取最新免费编程资源视频源码笔记,小伙伴请往下看!

qun号是:八×××,六三四,八四五。qun内有很多开发工具,很多干货和技术资料分享!

如果您觉得此篇文章对您有帮助,欢迎关注微信公众号:大禹编程,您的支持是对我最大的鼓励!共同学习,共同进步:

原文地址:http://blog.51cto.com/14015938/2306516

时间: 2024-10-06 10:01:00

这7大神器, 让你的Python 代码更易于维护的相关文章

怎么让你的Python代码更优雅!

3 个可以使你的 Python 代码更优雅.可读.直观和易于维护的工具. Python 提供了一组独特的工具和语言特性来使你的代码更加优雅.可读和直观.为正确的问题选择合适的工具,你的代码将更易于维护.在本文中,我们将研究其中的三个工具:魔术方法.迭代器和生成器,以及方法魔术. 加vx:tanzhouyiwan 免费领取Python学习资料 魔术方法 魔术方法可以看作是 Python 的管道.它们被称为"底层"方法,用于某些内置的方法.符号和操作.你可能熟悉的常见魔术方法是 __ini

让Python代码更快运行的 5 种方法

不论什么语言,我们都需要注意性能优化问题,提高执行效率.选择了脚本语言就要忍受其速度,这句话在某种程度上说明了Python作为脚本语言的不足之处,那就是执行效率和性能不够亮.尽管Python从未如C和Java一般快速,但是不少Python项目都处于开发语言领先位置. Python很简单易用,但大多数人使用Python都知道在处理密集型cpu工作时,它的数量级依然低于C.Java和JavaScript.但不少第三方不愿赘述Python的优点,而是决定自内而外提高其性能.如果你想让Python在同一

让你的Python代码更快运行的 5 种方法

https://cloud.tencent.com/developer/news/354761 不论什么语言,我们都需要注意性能优化问题,提高执行效率.选择了脚本语言就要忍受其速度,这句话在某种程度上说明了Python作为脚本语言的不足之 处,那就是执行效率和性能不够亮.尽管Python从未如C和Java一般快速,但是不少Python项目都处于开发语言领先位置. Python 很简单易用,但大多数人使用Python都知道在处理密集型cpu工作时,它的数量级依然低于C.Java和JavaScrip

Pycharm配置autopep8教程,让Python代码更符合pep8规范

一.何为pep8? PEP 8官方文档 -- Style Guide for Python Code PEP8中文翻译(转) 二.Pycharm中配置pep8 Pycharm本身是有pep8风格检测的,当你敲得代码中不符合规范时,会有下划波浪线提示.如何让代码修改为符合规范,去掉这些难看的波浪线呢?下面介绍步骤: 2.1安装autopep8 cmd窗口输入:pip install autopep8 2.2在Pycharm中安装autopep8配置 Tools→Extends Tools→点击加号

为何 Emacs 和 Vim 被称为两大神器

Emacs 是神的编辑器,而 Vim 是编辑器之神.二者为何会有如此美誉,且听本文向你一一道来. Author: Jiqing Wu email: [email protected] homepage: http:://hi.baidu.com/jiqing0925 create: 2011-01-09 update: 2011-01-09 面向的读者: 经常用电脑处理文本和编程的同学 目录 0. 序章:神器的传说 1. 无敌的可扩展性 1.1 可扩展性给了软件强大的生命 1.2 Emacs是伪

大数据、java、Python、区块链、人工智能哪个发展前景刚好?

在这个信息时代高速发展的情况下,很多人会对自己该往哪个方向发展感到迷茫,下面我就浅显的给大家介绍一下五大流行区域的发展前景. 大数据的发展前景: 当前大数据行业真的是人才稀缺吗? 学了几年后,大数据行业会不会产能过剩? 大数据行业最终需要什么样的人才? 接下来就带你们看看分析结果: 当前大数据行业真的是人才稀缺吗? 对!未来人才缺口150万,数据分析人才最稀缺. 先看大数据人才缺口有多大? 根据LinkedIn(领英)发布的<2016年中国互联网最热职位人才报告>显示,研发工程师.产品经理.人

「wps教程」Word里的大神器隐藏技能

单词 1.F4键Word里的大神器 "F4" - 重复上一步操作. 什么意思呢?比如我输入abc,按一下F4, 就会自动再输入一遍abc:比如我刚刚为某一段文本设置好字体.颜色.缩进.格式.选择另一段文本,再按F4,就自动把刚刚设置的动作再重复一遍择:做表格时候,"在下方添加新行"这样的命令,全部都可以用F4重复! 最后,F4在PowerPoint.Excel也是同样的,可以干好多事! 单词 2Ctrl+字母快捷键闪瞎双眼 Word是当之无愧的文字编辑神器,一些快捷

十大经典排序算法(python实现)(原创)

经典排序算法图解: 经典排序算法的复杂度: 大类一(比较排序法): 1.冒泡排序(Bubble Sort) python代码实现: 1 d0 = [2, 15, 5, 9, 7, 6, 4, 12, 5, 4, 2, 64, 5, 6, 4, 2, 3, 54, 45, 4, 44] 2 d0_out = [2, 2, 2, 3, 4, 4, 4, 4, 5, 5, 5, 6, 6, 7, 9, 12, 15, 44, 45, 54, 64] # 正确排序 3 4 while 1: 5 stat

读书分享全网学习资源大合集,推荐Python学习手册等三本书「01」

0.前言 在此之前,我已经为准备学习python的小白同学们准备了轻量级但超无敌的python开发利器之visio studio code使用入门系列.详见 1.PYTHON开发利器之VS Code之初识.简介.安装.中文 2.PYTHON开发利器之VS Code 主题.界面美化.快捷键.编辑器技巧 3.PYTHON开发利器之VS Code 常用插件介绍 4.PYTHON开发利器之使用VS Code进行python程序开发 5.1.PYTHON开发利器之使用VS Code+Git进行python