首页 / 知识
Pylint让Python代码保持一致
2023-11-12 13:38:00
当你想要争论代码复杂性时,Pylint是你的朋友。
Pylint是更高层级的Python样式强制程序。而flake8和black检查的是“本地”样式:换行位置、注释的格式、发现注释掉的代码或日志格式中的错误做法之类的问题。
默认情况下,Pylint非常激进。它将对每样东西都提供严厉的意见,从检查是否实际实现声明的接口到重构重复代码的可能性,这对新用户来说可能会很多。一种温和地将其引入项目或团队的方法是先关闭所有检查器,然后逐个启用检查器。如果你已经在使用flake8、black和mypy,这尤其有用:Pylint有相当多的检查器和它们在功能上重叠。
但是,Pylint独有之处之一是能够强制执行更高级别的问题:例如,函数的行数或者类中方法的数量。
这些数字可能因项目而异,并且可能取决于开发团队的偏好。但是,一旦团队就参数达成一致,使用自动工具强制化这些参数非常有用。这是Pylint闪耀的地方。
配置Pylint
要以空配置开始,请将.pylintrc设置为
[MESSAGESCONTROL]
disable=all
[MESSAGESCONTROL]
disable=all
这将禁用所有Pylint消息。由于其中许多是冗余的,这是有道理的。在Pylint中,message是一种特定的警告。
你可以通过运行pylint来确认所有消息都已关闭:
$pylint
通常,向pylint命令行添加参数并不是一个好主意:配置pylint的位置是.pylintrc。为了使它做一些有用的事,我们需要启用一些消息。
要启用消息,在.pylintrc中的[MESSAGESCONTROL]下添加
enable=,
...
对于看起来有用的“消息”(Pylint称之为不同类型的警告)。我最喜欢的包括too-many-lines、too-many-arguments和too-many-branches。所有这些会限制模块或函数的复杂性,并且无需进行人工操作即可客观地进行代码复杂度测量。
检查器是消息的来源:每条消息只属于一个检查器。许多最有用的消息都在设计检查器下。默认数字通常都不错,但要调整最大值也很简单:我们可以在.pylintrc中添加一个名为DESIGN的段。
[DESIGN]
max-args=7
max-locals=15
另一个有用的消息来源是“重构”检查器。我已启用一些最喜欢的消息有consider-using-dict-comprehension、stop-iteration-return(它会查找正确的停止迭代的方式是return而使用了raiseStopIteration的迭代器)和chained-comparison,它将建议使用如1<=x<5,而不是不太明显的1<=x&&5>5的语法。
最后是一个在性能方面消耗很大的检查器,但它非常有用,就是similarities。它会查找不同部分代码之间的复制粘贴来强制执行“不要重复自己”(DRY原则)。它只启用一条消息:duplicate-code。默认的“最小相似行数”设置为4。可以使用.pylintrc将其设置为不同的值。
[SIMILARITIES]
min-similarity-lines=3
Pylint使代码评审变得简单
如果你厌倦了需要指出一个类太复杂,或者两个不同的函数基本相同的代码评审,请将Pylint添加到你的持续集成配置中,并且只需要对项目复杂性准则的争论一次就行。
以上内容为大家介绍了Pylint让Python代码保持一致,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们http://www.mobiletrain.org/
最新内容
相关内容
为什么开发人员喜欢在机器学习和人
为什么开发人员喜欢在机器学习和人工智能项目中使用Python?,代码,项目,数据,人工智能,平台,异常,增长,灵活,时间,工具,1.Python是灵活的Pytho为何你的Python代码应是扁平与稀疏
为何你的Python代码应是扁平与稀疏的,代码,培训,信息,观察,设计,工具,嵌套,闻闻,程序员,沉思,Python之禅之所以得名,正是由于它那简明扼要的规用Python开发一个简单的猜数字游戏
用Python开发一个简单的猜数字游戏,数字,代码,培训,官网,设备,程序,玩家,注释,内容,游戏,本文介绍如何使用Python制作一个简单的猜数字游戏。如何提速优化python代码?
如何提速优化python代码?,代码,时间,数据,新增,写法,包装,情况,下来,面临,工作,Python是一种脚本语言,相比C/C++这样的编译语言,在效率和性能方python经典最短代码实现排序的功能
python经典最短代码实现排序的功能,代码,位置,数据,分析,时间,序列,元素,培训,下来,算法,冒泡排序:算法思想:1.比较相邻的元素,如果第一个比第二Python中的两个测试工具
Python中的两个测试工具,代码,情况,测试,设计,通用,名称,庞大,标准,网址,培训,当我们在写程序的时候,我们需要通过测试来验证程序是否出错或者用于业余项目的优秀 Python 库
用于业余项目的优秀 Python 库,数据,工具,项目,信息,培训,系统,地图,下来,工作,管理,1.在数据库中即时保存数据:Dataset当我们想要在不知道最如何让Python代码更易维护
如何让Python代码更易维护,代码,项目,标准,工具,质量,地方,一致,更正,培训,控制权,检查你的代码的质量,通过这些外部库使其更易维护。可读性很开发人员常用Python开发工具
开发人员常用Python开发工具,环境,代码,平台,设备,项目,分析,智能,行业,产品,人员,Python编程开发是目前最热门的行业之一,Python无论是从人才Python 性能剖分工具
Python 性能剖分工具,时间,工具,环境,分析,数据,代码,标准,人员,项目,培训,眼看着项目即将完成,却被测试人员告知没有通过性能测试,这种情况在Python工具库之collections
Python工具库之collections,代码,数据,模具,情况,工具,概念,管理,一致,培训,名字,collection在英文当中有容器的意思,所以顾名思义,这是一个容python虚拟环境工具virtualenv
python虚拟环境工具virtualenv,环境,名字,工具,系统,工作,工程,位置,管理,培训,地方,virtualenv是一个创建隔绝的Python环境的工具。virtuale