Python - 好用第三方庫 isort

背景

PEP8 有建議 Python 模塊中 import 的導入順序

  1. 首先引入標準庫裏的模塊
  2. 然後引入第三方模塊
  3. 最後引入自己的模塊

屬於同一個部分的 import 語句按字母順序排列

 

isort 的作用

可以自動將 Python 模塊中的 import 進行排序,並自動按類型劃分以滿足上面說的 PEP8 規範

 

安裝 isort

pip install isort

 

實際效果

沒有 isort 之前

from my_lib import Object

import os

from my_lib import Object3

from my_lib import Object2

import sys

from third_party import lib15, lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8, lib9, lib10, lib11, lib12, lib13, lib14

import sys

from __future__ import absolute_import

from third_party import lib3

print("Hey")
print("yo")

 

執行 isort 命令

isort isort_test.py

 

isort 之後

from __future__ import absolute_import

import os
import sys

from my_lib import Object, Object2, Object3
from third_party import (
    lib1,
    lib2,
    lib3,
    lib4,
    lib5,
    lib6,
    lib7,
    lib8,
    lib9,
    lib10,
    lib11,
    lib12,
    lib13,
    lib14,
    lib15,
)

print("Hey")
print("yo")

可讀性和可維護性提高不要太多!

 

isort 的具體使用

指定文件

isort mypythonfile.py mypythonfile2.py

 

當前目錄所有文件

isort .

 

查看修改建議,但不會修改文件

isort mypythonfile.py --diff

 

常用命令行參數

--check-only、-c

  • 使用 -c 運行代碼來驗證代碼的格式是否正確
  • 任何包含錯誤排序和/或格式導入的文件都將輸出到 stderr

 

--skip、-s

跳過指定文件,可以是文件名、目錄名、文件路徑

 

--force-single-line-imports

強制所有 import 都出現在單行上

 

官方文檔

實在太多命令行參數了,用到再查吧,默認不用參數也完全夠用了

https://pycqa.github.io/isort/docs/configuration/options.html

 

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