isort 讓你的python import更絲滑

或你在python項(xiàng)目開(kāi)發(fā)可能見(jiàn)過(guò)各種各樣的import,比如import不明的import *:


import不明.png

又比如import順序混亂以至于都不清楚哪些包/模塊是否已經(jīng)被import過(guò)了:


import亂序.png

在開(kāi)發(fā)過(guò)程中,良好的代碼風(fēng)格和規(guī)范可以使代碼更加可讀、維護(hù)更加方便。Python 提供了多種工具來(lái)幫助開(kāi)發(fā)者保持代碼的一致性和整潔度。其中,isort 是一個(gè)專門用于整理導(dǎo)入語(yǔ)句的工具,可以幫助開(kāi)發(fā)者將代碼中的導(dǎo)入語(yǔ)句按照規(guī)定的順序排序,并自動(dòng)去除未使用的導(dǎo)入。

功能介紹

isort 主要提供以下功能:

  • 自動(dòng)排序?qū)?/strong>:根據(jù)用戶設(shè)置的規(guī)則,對(duì)代碼文件中的導(dǎo)入語(yǔ)句進(jìn)行排序。
  • 分組導(dǎo)入:將導(dǎo)入語(yǔ)句分成標(biāo)準(zhǔn)庫(kù)導(dǎo)入、第三方庫(kù)導(dǎo)入和本地模塊導(dǎo)入三個(gè)組,并進(jìn)行排序。
  • 自動(dòng)去除未使用的導(dǎo)入:isort 可以自動(dòng)去除代碼中未使用的導(dǎo)入語(yǔ)句。
  • 自動(dòng)合并導(dǎo)入:isort 會(huì)將同一個(gè)模塊的多個(gè)導(dǎo)入合并成一個(gè)導(dǎo)入。
  • 自定義排序規(guī)則:isort 提供了多種選項(xiàng),允許開(kāi)發(fā)者自定義導(dǎo)入語(yǔ)句的排序規(guī)則。

安裝

您可以通過(guò) pip 命令安裝 isort:

pip install isort

安裝成功后,您可以在命令行中輸入 isort --version 來(lái)檢查 isort 的版本。

使用教程

命令行使用

isort 提供了豐富的命令行選項(xiàng)。最基本的用法是指定一個(gè)或多個(gè)文件、目錄,然后讓 isort 對(duì)其進(jìn)行整理:

isort your_file.py

您也可以對(duì)整個(gè)目錄中的所有 Python 文件進(jìn)行整理:

isort your_directory/

常見(jiàn)的命令行選項(xiàng)包括:

  • --check:檢查文件中導(dǎo)入語(yǔ)句的順序是否正確,而不對(duì)文件進(jìn)行修改。如果存在不符合規(guī)范的導(dǎo)入語(yǔ)句,命令會(huì)返回錯(cuò)誤代碼。
  • --diff:顯示文件在整理之前和之后的差異,而不對(duì)文件進(jìn)行修改。
  • --profile:指定排序規(guī)則的配置文件,如 black 或 google。
  • --multi-line:指定多行導(dǎo)入的格式。
    以下是一個(gè)指定了--multi-line=VERTICAL多行導(dǎo)入的格式效果:
isort --multi-line=VERTICAL your_file.py
import正確.png

在代碼中使用

isort 也可以作為一個(gè)庫(kù)在 Python 代碼中使用,因?yàn)閕sort也是一個(gè)第三方庫(kù)。下面是一個(gè)示例:

from isort import file

# 對(duì)指定文件進(jìn)行整理
file("your_file.py")

# 對(duì)指定目錄中的所有文件進(jìn)行整理
file("your_directory/", recursive=True)

配置文件

isort 支持在項(xiàng)目根目錄中放置一個(gè)名為 .isort.cfg 的配置文件,以便自定義排序規(guī)則和選項(xiàng)。您可以在其中設(shè)置排序方式、組劃分等選項(xiàng)。示例如下:

[settings]
line_length = 88
profile = black
known_third_party = pandas,numpy
known_first_party = mypackage

總結(jié)
isort 是一個(gè)強(qiáng)大的工具,可以幫助開(kāi)發(fā)者輕松整理代碼中的導(dǎo)入語(yǔ)句。通過(guò)使用 isort,代碼的可讀性和一致性得到了提高,也讓讓團(tuán)隊(duì)協(xié)作更加高效。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容