Python程式碼規範利器Flake8

pythontab發表於2015-03-26

寫程式碼其實是需要規範的,團隊中更是如此;不然 Google 也不會發布各種編碼規範,耳熟能詳的有Google C++ 風格指南,Google Python 風格指南,等等。

這些規範有用嗎?有用也沒用,除非你腦子好使,一邊 coding,一邊將規範運用的發紫;否則我們終須還是需要一種工具來做這件事情。好在python 不止一種工具幫我們做這件事。話休絮煩,切正題。

Pylint

使用過,變態到發紫;不知道誰那麼無聊,將規則定的那麼死,我們 pythoner 能快樂嗎?乃們不見 rubyer,Matz 倡導的是什麼? Happy Coding 有木有? 所以用過就仍了,因為我不需要這麼變態的搞,無愛~ 如果你要安裝,也很簡單:

<php>easy_install pylint // maybe nedd root</php>

Pep8

顧名思義,來自於 Python 社群著名的 PEP 8。基本上寫程式碼按這個就對了,但是這還不夠完美;安裝如下:

easy_install pep8 // maybe nedd root


Pyflakes


Python 程式被動檢測工具,還真夠被動的,據作者說比較快,不夠強大,但是還可以~

easy_install pyflakes // maybe nedd root

Flake8


主角登場了,這是我推薦的,但是並不影響其他人喜歡 pylint。其實這哥們是集大成者,是以下三個工具的包裝:

PyFlakes

Pep8

Ned Batchelder’s McCabe script

好處不說了,關鍵是可擴充套件的,這兒說的很清楚了:https://pypi.python.org/pypi/flake8/2.0。安裝如下:

easy_install flake8 // maybe nedd root

如果你跟我一樣喜歡 Git 這丫,那麼你也是 pyhoner,那麼還有福利,將如下的程式碼寫入 .git/hooks/pre-commit:

#!/usr/bin/env python

import sys

from flake8.hooks import git_hook


COMPLEXITY = 12

STRICT = True


程式碼就不解釋了,官方文件寫的很清楚:http://flake8.readthedocs.org/en/latest/vcs.html#git-hook。 如果你的 pre-commit 指令碼已經有了規則,也沒事,在 shell 中呼叫 python 吧。

如果你也喜歡 vim


作為兩大神器之一的 vim,自然要有外掛來享受以上工具的:

nvie/vim-flake8

vim-scripts/pylint.vim

看到上面的列舉,你應該會知道我在說什麼了,沒錯,用 vundle 安裝:

" Flake8 plugin for Vim.

Bundle 'nvie/vim-flake8'

" compiler plugin for python style checking tool.

Bundle 'vim-scripts/pylint.vim'

autocmd FileType python compiler pylint


如果你真的不知道 vundle,真的是時候使用她了:https://github.com/gmarik/vundle。如果你嫌這一切都麻煩,直接用我的 vimrc 吧,在這裡:


git clone https://github.com/icocoa/icocoa-vimrc.git --recursive vimrc // icocoa is my another account in GitHub


相關文章