💩

【Python3】from ~ importとimport ~ の違い

2022/06/21に公開

python3で、モジュール読み込みを整理しました。
プレフィックスが必要かどうか。fromの必要性が疑問でしたが、以下のコード比較で理解しました。

以下のコードは、lunch.pyを実行すると、ランダムにファーストフード店の名前が表示されるプログラムです。
fast.pyでは、randomモジュールを読み込み、lunch.pyでは、fastモジュールを読み込みます。

from ~ importのバージョン
fast.py
from random import choice # import ~ fast

places = ['Mac', 'KFC', 'BK']

def pick():
    return choice(places) # random.fastはエラー
lunch.py
from fast import pick # import ~ fast

place = pick() # fast.pick()はエラー
print('Go to ', place)
importのバージョン
fast.py
import random # import

places = ['Mac', 'KFC', 'BK']

def pick():
    return random.choice(places) # プレフィックス必須
lunch.py
import fast # import

place = fast.pick() # プレフィックス必須
print('Go to ', place)

後者のバージョンでは、プレフィックスによって「このメソッドは、どのモジュール出身なのか」がわかりやすい気がします。
タイプ量は増えますが。

Discussion