如今我使用 Python 已經(jīng)很長時間了,但當我回顧之前寫的一些代碼時,有時候會感到很沮喪。例如,最早使用 Python 時,我寫了一個名為 Sudoku 的游戲(GitHub地址:https://github.com/MichaelWashburnJr/PythonSudoku)。這個游戲在當時算是我比較拿得出手的項目了。然而現(xiàn)在,我無法直接復制其代碼并運行它,具體原因是我當時編碼時沒有添加一個setup.py 或者 requires.txt 文件,當然,這種錯誤我肯定不會再犯!
由此,我總結了多年來自己所編寫的 Python 代碼的質量變化過程。它們變得更加簡潔、健壯、易讀。但是什么原因使得 Python 代碼變得更好呢?
在本文中筆者將與大家共同探討一些 Python 代碼的優(yōu)化手段,或大或小。希望以此幫助你提高 Python 代碼的質量。當然,這些方式也可以適用于其他編程語言和技術。
1. 將代碼設置為可通過 PIP 安裝的軟件包
當你想要使用一個新的 Python 包時,如果可以使用 “pip install”命令跟上包名或者包的位置來安裝的話,就會非常方便。
有很多方法可以實現(xiàn)這一點,我的“go to”項目實現(xiàn)方法是創(chuàng)建一個 setup.py 文件。
假設我們在“flask_example.py”中有一個簡單的 Flask 程序:
from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'Hello, World!'def main(): app.run()if __name__ == ‘__main__': main()我們可以將其設置為一個可安裝的 Python 包。方法是:首先把它移動到一個單獨的文件夾中(我們稱之為“flask_example /”),然后在項目根文件夾中創(chuàng)建一個如下所示的setup.py 文件:
from distutils.core import setupsetup( name='flask_example', version='1.0', description='Hello, World! in flask.', packages=['flask_example'], install_requires=[ 'Flask==0.12.2' ], entry_points = { 'console_scripts': 'runserver=flask_example.flask_example:main' })這樣做可以帶來一系列優(yōu)點。 首先,你可以使用“pip install -e”在本地安裝你的應用程序。這樣,開發(fā)人員可以輕松克隆和安裝項目,因為 setup.py 文件將會處理掉所有繁重的工作。
其次,使用 setup.py 文件來進行依賴關系管理。install_requires 變量能夠定義要使用的軟件包以及版本。如果你不確定使用的軟件包名稱和版本,可以運行“pip freeze”來查看它們。
最后,它可以為你的程序包定義入口點,通過簡單運行“runserver”即可在命令行中執(zhí)行代碼。
2. 借助 linter 工具捕獲代碼錯誤
使用 linter(語法檢查)可以自動修復代碼的語法問題。PyLint 是一款強大的 Python 版本的 linter 工具,如果你使用類似 Git 這樣的版本控制系統(tǒng),可以在提交代碼之前讓 Git 通過一個 linter 運行代碼來解決語法問題。
新聞熱點
疑難解答