寫一手漂亮的代碼是一件重要,但卻不容易的事。編程除了用代碼實現(xiàn)需求功能之外,代碼的格式風(fēng)格需要符合公司的開發(fā)規(guī)范,這不僅可以讓同事能輕松讀懂你寫的代碼,而且對自己也是大有裨益,想象一下一個月之后再回來改自己寫的代碼。如何保證來代碼風(fēng)格的一致性和正確性?有一個強大的工具Linter可以輔助我們完成這項工作。
什么是Lint ?
在計算機科學(xué)中,lint是一種工具程序的名稱,它用來標記源代碼中,某些可疑的、不具結(jié)構(gòu)性(可能造成bug)的段落。它是一種靜態(tài)程序分析工具,最早適用于C語言,在UNIX平臺上開發(fā)出來。后來它成為通用術(shù)語,可用于描述在任何一種計算機程序語言中,用來標記源代碼中有疑義段落的工具。
本文重點介紹如何在Sublime這個編輯器中引入linter 來提高python項目的代碼質(zhì)量.
環(huán)境
本文介紹的工具是在mac os環(huán)境下安裝。
- mac os 10.13
- Sublime Text 3 build 3176
- Python 3.6.2
步驟一: 安裝Flake8
眾所周知python領(lǐng)域的代碼規(guī)范為PEP8,目前有幾大Linter工具Pylint,Flake8。考慮到配置使用的方便性筆者選用了Flake8
我們需要在系統(tǒng)級別安裝flake8。
$ pip3 install flake8
檢查是否安裝正確,執(zhí)行which命令。
$ which flake8
/Users/hqman/.pyenv/shims/flake8
然后我寫一段超簡單的python代碼來試試linter。
#!/usr/bin/env python
def talk(text=None):
return '說話:' + text
name = '某人'
age = 30
my_string = f"他叫 {name} , 今年 {age} 歲了."
print(my_string) #random comment
name != unknown # this is wrong
print(talk('你好!'))
flake8 test.py
test.py:3:1: E302 expected 2 blank lines, found 1
test.py:11:19: E262 inline comment should start with '# '
test.py:13:9: F821 undefined name 'unknown'
test.py:17:1: E303 too many blank lines (3)
test.py:17:19: W292 no newline at end of file
運行后看到linter結(jié)果提示,說明已經(jīng)可以工作了。
步驟二: 安裝SublimeLinter 和 SublimeLinter-Flake8
打開Sublime Text分別安裝SublimeLinter 和 SublimeLinter-Flake8這兩個插件。
然后打開Preferences > Package preferences > SublimeLinter > Settings 。
寫配置文件。
// SublimeLinter Settings - User
{
"linters": {
"flake8": {
"args": [
"--max-line-length", "120",
"--ignore", "E133,E226",
],
},
},
"paths": {
"linux": [],
"osx": ["/Users/snow/.pyenv/shims/"],
"windows": []
}
}
步驟三: 開始寫代碼
恭喜你!在完成以上幾個步驟以后,我們可以使用強大的linter了。