💩
【Python3】from ~ importとimport ~ の違い
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