「Python實用祕技14」快速優化Python導包順序

本文完整示例代碼及文件已上傳至我的Github倉庫https://github.com/CNFeffery/PythonPracticalSkills

  這是我的系列文章「Python實用祕技」的第14期,本系列立足於筆者日常工作中使用Python積累的心得體會,每一期爲大家帶來一個幾分鐘內就可學會的簡單小技巧。

  作爲系列第14期,我們即將學習的是:快速優化Python導包順序。

  當我們書寫Python代碼的時候,遵守標準的代碼規範可以幫助我們提升代碼的可讀性和易維護性。而在常見的Python代碼規範中,我們在代碼開頭導包時,建議按照標準庫>第三方庫>自定義庫或相對引用庫的順序組織代碼,且各類型導包邏輯中建議按照字母順序進行排列。

  但在日常代碼編寫過程中,我們很難一直手動保持這樣的標準習慣,這時我們就可以使用usort這個實用的工具來輔助優化代碼中的導包順序😉。

  usortfacebook即現在的meta公司進行開源維護,使用pip install usort進行安裝後,即可直接針對指定的py文件或整個項目進行導包順序優化,以下面的代碼爲例,原始的導包順序如下,其中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

  通過在終端執行usort format main.py進行優化後,導包順序被更新爲如下狀態,可以看到優化後的導包順序遵循了前面所說的標準規範:

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中格式化代碼時,將一些必須在前面執行的代碼邏輯誤移動至導包邏輯後的錯誤,譬如下面的warnings.filterwarnings(),我們需要其在其他所有導包邏輯之前執行,以起到屏蔽相關警告信息的作用。

  如果是使用ide中自帶的代碼美化快捷功能,可以看到美化後warnings.filterwarnings()被強制挪動到最後:

  而usort就智能多了:


  本期分享結束,咱們下回見~👋

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章