結論:
PEP 8ではインポート文を 「標準ライブラリ → サードパーティ → 自作モジュール」 の順でまとめることを推奨しています。
各グループの間には 1行の空行 を入れると可読性が上がります。
インポートの基本ルール
- 1行につき1モジュール
#良い例 import os
import sys 悪い例 import os, sys- 別名(エイリアス)は慣習に従う
import numpy as np import pandas as pd - ワイルドカードインポートは禁止
from module import *は可読性を下げるのでNG- 具体的に必要な関数・クラスを指定する
インポートの並べ方(推奨順)
1. 標準ライブラリ
import os
import sys
import datetime
2. サードパーティライブラリ
import numpy as np
import pandas as pd
import requests
3. 自作モジュール
from my_project.utils import helper
from my_project.models import User
👉 各グループの間に 空行1つ を入れると整理されて見やすいです。
インポートの並べ方(まとめ例)
# 標準ライブラリ
import os
import sys
import datetime
# サードパーティ
import numpy as np
import pandas as pd
# 自作モジュール
from my_project.utils import helper
from my_project.models import User
よくある間違い
- 標準ライブラリと外部ライブラリを混在
- アルファベット順に並べない
import *を使って名前が衝突
実務での工夫
- isortツールを使う
→ 自動でグループ分け・順序整理をしてくれる - blackと併用
→ インデントや空白も自動で整えてくれる - チームで統一
→ プロジェクトごとにルールを決めておくとレビューがスムーズ
まとめ
- インポートは 標準 → サードパーティ → 自作 の順で並べる
- 1行1モジュールが原則、エイリアスは慣習に従う
- ツール(isort, black)を使えば自動で整理可能
