Pylint : 你很棒,但我不想跟你 PaPaPa ...
这是一篇读后感,原文来自 Itamar Turner-Trauring 的 Why Pylint is both useful and unusable, and how you can actually use it。文章不长,简明扼要,大致是说了这么三点:
- Pylint 的好处,以及如何帮助提升开发效率
本文在原文的基础上进行了一些个 ( xīu ) 性 ( chǐ ) 的展开和解读。因此,在各位司机加满汽油、暖上引擎 (磨🗡霍霍、擦枪走🔥).....之前,还是要谨小慎微地给您递上一个十分贴心到位的友情提醒:"本文已开启洪荒模式,其间 wulitaotao,气流紊乱,不可小觑;无关人士请自觉避让,(小清新尤其)注意此乃分流车道;最后,前方即将到达高速入口,请各位务必集中精力,谨慎驾驶,一路平安!😋"。
Step.1 掀起你的盖头来,让我看看你的脸 👰🏻
你是蛇群里的美杜莎,你是托起希望的雅典娜,你只用回眸看我的那束光,便将我原本百毒不侵的心脏,吹作烟、散为云,我将一生奉你为神祇,匍匐在你脚下,做你最虔诚的信徒,从此再无畏死亡和黑暗......
概括的讲,Pylint 是一个作用于 Python 的实时代码分析的命令行工具,它有助于开发人员在编写代码的过程中,及时发现和修正代码中存在的问题,这其中包括了**检测标准代码风格、重构帮助、错误检测、完全定制、编辑器集成、IDE集成、UML视图、...... **。
作为送给 Python 程序员的礼物,Pylint 就是一记看轻实重的化骨绵掌,直打得你心神荡漾,眼波流淌,骨头酥脆,一碰即碎。
Step.2 打开我,解锁更多姿势 👄
......
千姿百态是我,风情万种是我;
正当花好月圆夜,罗裳朦胧时;
请你,
轻轻打开我。
......
(题外:😣实在编不下去了,请自觉脑补。)
对于不同的平台 Pylint 有不同的打开方式。对,你没看错,主流的方式就有以下8
种。所以不用担心车型不同、车系有别(我们有各种式样、各种厚度、各种尺寸,包您可以找到最衬您雄风的一款)*,请放开手脚尽情享用!
- **Debian 和 Ubuntu **
sudo apt-get install pylint
- Fedora
sudo yum install pylint
- Gentoo
emerge pylint
- openSUSE
sudo zypper install pylint # python2.7
sudo zypper install python3-pylint # python 3.x
- Arch Linux
pacman -S python2-pylint # if you live in the past
pacman -S python-pylint # if you live in the future
- OS X
pip install pylint
- Windows
pip install pylint
屌丝问题多。
- From Source, using Git
git clone https://github.com/PyCQA/pylint
git clone https://github.com/PyCQA/astroid
Step.3 你很棒,但我不想跟你 PaPaPa ... 🤥
摘自原文:Pylint is useful, but many projects don't use it. For example, I went and checked just now, and neither Twisted nor Django nor Flask nor Sphinx seem to use Pylint. Why wouldn't these large, sophisticated Python projects use a tool that would automatically catch bugs for them?
文中提到,Pylint 是个有用的工具,但是在像 Twisted, Django, Flask, Sphinx 这样出了名的大工程中却看不到它的踪影,这是为什么呢?这里有两个原因:
摘自原文:One problem is that it's slow, but that's not the real problem; you can always just run it on the CI system with the other slow tests. The real problem is the amount of output.
表面看来是它的问题是运行效率低( 需要对大量文件进行分析 );但主要问题来自于使用 Pylint 会产生大量的输出,且大部分属于无用的垃圾信息( 这个问题要归咎于 Pylint 的默认输出方式 )。举🌰来说:
摘自原文:I ran pylint on a checkout of Twisted and the resulting output was 28,000 lines of output (at which point pylint crashed, but I'll assume that's fixed in newer releases). Let me say that again: 28,000 errors or warnings.
使用 Pylint 检查 Twisted 项目,结果产生了28,000
行输出(运行到这里崩溃了,不然可不止这么点哦~),也就是说有28,000
行的错误或警告( -_-!!! )。
再举一个不算有用的警告的🌰:
W:675, 0: Class has no __init__ method (no-init)
见微知著,我们可以预想( 不,应该是明确 ) Pylint 妹纸的输出真的是往铤而走险、弹尽粮绝的路子上走,大概这就是为什么这些大佬(老司机)们拒绝上 Pylint 的原因吧。
Step4. 此路不通?别啊,我是可以调教的!😘
😤知道了你们这群死狗的想法,心里其实很不爽的说:“臭男人,嘴巴上说不要,身体却很诚实。说到底,还不是嫌弃我输出太强,身体受不了嘛。一个个都是老贱的骨头!”
😊但话呢还是要漂亮地说:“别急着走呀,我是可以调教的嘛。只要把指令输入到 .pylintrc
配置文件中,你就能完全支配我的动作和行为,制作专属于你的定制版哦~。”
😜“啥?你不知道有哪些指令?唔,是我的错,忘了告诉你这件事了。这儿有一本说明书,不懂就翻翻看,不要自己瞎鼓捣哦,不然我会坏掉的。”
😏“哦,对了,这儿还有两份参考配置,你可以借鉴一下别人是怎么做的:XX, OO。好了,你先好好看着吧,今晚我等你,一定要来哦~。”