【Python】from, importの使い方
概要
モジュールをインポートして利用する場合に使用するfromとimportについてPython3.5.3で使い方を検証してみました。 モジュールをインポートする方式として静的にインポートするケースと動的にインポートするケースがあるようですが、 from、importは静的にモジュールをインポートするケースです。
import文のみでインポート
- import モジュール名
モジュール全体(内部で定義されているクラスや定数等)をインポートできるが、 コードに記載する場合に、モジュール名を記載しなければなりません。
~$ python3 >>> import math >>> math.pi 3.141592653589793
from文でインポート
- from モジュール名 import シンボル名
モジュール全体ではなく、特定のシンボル(クラス名、関数名、定数等)だけを直接インポートします。 コードに記載する場合に、モジュール名は記載する必要がありません。
~$ python3 >>> from math import pi >>> pi 3.141592653589793
asで別名をつける
- import モジュール名 as 別名
別名を使用した場合、別名でしかアクセスできません。 元のモジュール名ではアクセスできません。
~$ python3 >>> import math as m >>> m.pi 3.141592653589793 >>> math.pi Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'math' is not defined
- from モジュール名 import シンボル名 as 別名
~$ python3 >>> from math import pi as PI >>> PI 3.141592653589793 >>> pi Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'pi' is not defined
複数のシンボルを同時にインポート
- from モジュール名 import シンボル名1,シンボル名2
カンマ区切りで同時に複数のシンボルをインポートできます。
~$ python3 >>> from math import pi, fsum >>> pi 3.141592653589793 >>> fsum([1.1, 2.2]) 3.3000000000000003
失敗例
- import文のみで特定のシンボルだけインポート
~$ python3 >>> import math.pi Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named 'math.pi'; 'math' is not a package