這是一篇讀后感,原文來自 Itamar Turner-Trauring 的 Why Pylint is both useful and unusable, and how you can actually use it。文章不長,簡明扼要,大致是說了這么三點:
- Pylint 的好處,以及如何幫助提升開發(fā)效率
本文在原文的基礎上進行了一些個 ( xīu ) 性 ( chǐ ) 的展開和解讀。因此,在各位司機加滿汽油、暖上引擎 (磨??霍霍、擦槍走??).....之前,還是要謹小慎微地給您遞上一個十分貼心到位的友情提醒:"本文已開啟洪荒模式,其間 wulitaotao,氣流紊亂,不可小覷;無關人士請自覺避讓,(小清新尤其)注意此乃分流車道;最后,前方即將到達高速入口,請各位務必集中精力,謹慎駕駛,一路平安!??"。
Step.1 掀起你的蓋頭來,讓我看看你的臉 ????
你是蛇群里的美杜莎,你是托起希望的雅典娜,你只用回眸看我的那束光,便將我原本百毒不侵的心臟,吹作煙、散為云,我將一生奉你為神祇,匍匐在你腳下,做你最虔誠的信徒,從此再無畏死亡和黑暗......
概括的講,Pylint 是一個作用于 Python 的實時代碼分析的命令行工具,它有助于開發(fā)人員在編寫代碼的過程中,及時發(fā)現(xiàn)和修正代碼中存在的問題,這其中包括了**檢測標準代碼風格、重構幫助、錯誤檢測、完全定制、編輯器集成、IDE集成、UML視圖、...... **。
作為送給 Python 程序員的禮物,Pylint 就是一記看輕實重的化骨綿掌,直打得你心神蕩漾,眼波流淌,骨頭酥脆,一碰即碎。
Step.2 打開我,解鎖更多姿勢 ??
......
千姿百態(tài)是我,風情萬種是我;
正當花好月圓夜,羅裳朦朧時;
請你,
輕輕打開我。
......
(題外:??實在編不下去了,請自覺腦補。)
對于不同的平臺 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 會產(chǎn)生大量的輸出,且大部分屬于無用的垃圾信息( 這個問題要歸咎于 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 項目,結果產(chǎn)生了28,000
行輸出(運行到這里崩潰了,不然可不止這么點哦~),也就是說有28,000
行的錯誤或警告( -_-!!! )。
再舉一個不算有用的警告的??:
W:675, 0: Class has no __init__ method (no-init)
見微知著,我們可以預想( 不,應該是明確 ) Pylint 妹紙的輸出真的是往鋌而走險、彈盡糧絕的路子上走,大概這就是為什么這些大佬(老司機)們拒絕上 Pylint 的原因吧。
Step4. 此路不通?別啊,我是可以調(diào)教的!??
??知道了你們這群死狗的想法,心里其實很不爽的說:“臭男人,嘴巴上說不要,身體卻很誠實。說到底,還不是嫌棄我輸出太強,身體受不了嘛。一個個都是老賤的骨頭!”
??但話呢還是要漂亮地說:“別急著走呀,我是可以調(diào)教的嘛。只要把指令輸入到 .pylintrc
配置文件中,你就能完全支配我的動作和行為,制作專屬于你的定制版哦~。”
??“啥?你不知道有哪些指令?唔,是我的錯,忘了告訴你這件事了。這兒有一本說明書,不懂就翻翻看,不要自己瞎鼓搗哦,不然我會壞掉的。”
??“哦,對了,這兒還有兩份參考配置,你可以借鑒一下別人是怎么做的:XX, OO。好了,你先好好看著吧,今晚我等你,一定要來哦~。”