importステートメントとfromステートメント

improtステートメントではモジュールオブジェクト全体がロードされる。特定の属性を利用するには、まずモジュールオブジェクトの名前を指定し、その後に属性の名前を指定する必要がある。


>>>import module
>>>module.print_hello()
hello!
と書く必要がある。

これに対してfromステートメントを使用した場合には、importステートメントとは違い、モジュールファイル中の特定の変数を他のスコープにコピーする。コピーされた変数はモジュールオブジェクトの名前を指定せずにそのまま使用することができる。


>>>from module import print_hello
>>>print_hello()
hello!
fromステートメントを使用して嬉しいことは、タイピングの手間を省ける所にある。
ちなみにfrom*ステートメントを使用すると、全ての変数がコピーされる。あるモジュールの名前空間を別のモジュールに「はめこんでいる」状態である。