【Python】如何快速優(yōu)化Python導包順序
?本文完整示例代碼及文件已上傳至我的
?Github倉庫https://github.com/CNFeffery/PythonPracticalSkills
這是我的系列文章「Python實用秘技」的第14期,本系列立足于筆者日常工作中使用Python積累的心得體會,每一期為大家?guī)硪粋€幾分鐘內就可學會的簡單小技巧。
作為系列第14期,我們即將學習的是:快速優(yōu)化Python導包順序。

當我們書寫Python代碼的時候,遵守標準的代碼規(guī)范可以幫助我們提升代碼的可讀性和易維護性。而在常見的Python代碼規(guī)范中,我們在代碼開頭導包時,建議按照標準庫>第三方庫>自定義庫或相對引用庫的順序組織代碼,且各類型導包邏輯中建議按照字母順序進行排列。
但在日常代碼編寫過程中,我們很難一直手動保持這樣的標準習慣,這時我們就可以使用usort這個實用的工具來輔助優(yōu)化代碼中的導包順序??。
usort由facebook即現在的meta公司進行開源維護,使用pip install usort進行安裝后,即可直接針對指定的py文件或整個項目進行導包順序優(yōu)化,以下面的代碼為例,原始的導包順序如下,其中demo是同級自定義包:
import?pandas?as?pd
import?numpy?as?np
import?feffery_antd_components?as?fac
import?feffery_utils_components?as?fuc
import?re
import?dash
from?demo?import?Demo
from?dash?import?html,?dcc
通過在終端執(zhí)行usort format main.py進行優(yōu)化后,導包順序被更新為如下狀態(tài),可以看到優(yōu)化后的導包順序遵循了前面所說的標準規(guī)范:
import?re
import?dash
import?feffery_antd_components?as?fac
import?feffery_utils_components?as?fuc
import?numpy?as?np
import?pandas?as?pd
from?dash?import?dcc,?html
from?demo?import?Demo

且usort不會犯一些ide中格式化代碼時,將一些必須在前面執(zhí)行的代碼邏輯誤移動至導包邏輯后的錯誤,譬如下面的warnings.filterwarnings(),我們需要其在其他所有導包邏輯「之前」執(zhí)行,以起到屏蔽相關警告信息的作用。
如果是使用ide中自帶的代碼美化快捷功能,可以看到美化后warnings.filterwarnings()被強制挪動到最后:

而usort就智能多了:

本期分享結束,咱們下回見~??
往期精彩回顧
適合初學者入門人工智能的路線及資料下載 (圖文+視頻)機器學習入門系列下載 機器學習及深度學習筆記等資料打印 《統(tǒng)計學習方法》的代碼復現專輯
機器學習交流qq群955171419,加入微信群請掃碼
