Python: import文でモジュールを取り込む方法5パターン
モジュールとは関数や変数が集まった1つのファイルのことで、 他のプログラムから利用することを前提に作られたものです。
Pythonでモジュールを使う場合はimport文を使います。 ここではimport文でモジュールを取り込む方法を解説します。 モジュールの具体例として標準モジュールの一つ、 mathモジュールを使って解説します。
パッケージ内のモジュールの取り込みに関しては別記事を用意しています。
(
import文でパッケージ内のモジュールを取り込む方法)
モジュール、パッケージ、ライブラリの意味があいまいな方は
次の記事を参考にしてください。
(
ライブラリ、パッケージ、モジュールの関係・違い)
モジュール取り込み方のまとめ
記述パターンが5つあるので、先にまとめておきます。 以下の記述方法を順番に説明します。
# ①:モジュールを取り込む import モジュール名 # ②:モジュールに別名をつける import モジュール名 as 別名 # ③:特定の関数(変数)だけを取り込む from モジュール名 import 関数名(変数名) # ④:特定の関数(変数)だけを取り込んで別名をつける from モジュール名 import 関数名(変数名) as 別名 # ⑤:モジュールの全ての関数(変数)を取り込む from モジュール名 import *
① import モジュール名
「import モジュール名」と記述することでモジュールを取り込むことができます。 この記述方法が一番シンプルで、最も良く使われている方法です。 「import モジュール名」を記述する場所は、 モジュール内の関数や変数を利用する前ならどこでもいいのですが、 通常はファイルの冒頭に記述します。
変数や関数を利用する
モジュール内の変数や関数を利用する場合は次のようにモジュール名の後に 「.」ドットを付けて変数名や関数名を記述します。
モジュール名.変数名 モジュール名.関数名()
サンプルコード
mathモジュールを使ったサンプルコードです。 ここではmathモジュール内の円周率を表す変数「pi」と 小数点以下を切り捨てる関数「floor」を使っています。
import math # 円周率 print(math.pi) # 切り捨て print(math.floor(5.4))
3.141592653589793 5
② import モジュール名 as 別名
「import モジュール名」の後に「as 別名」と記述することで、 モジュール名に別名を付けることができます。 英単語「as」は「~として」という意味です。 この方法はモジュール名が長い場合に使うとコードがシンプルになります。
変数や関数を利用する
「as 別名」で付けた別名の後に「.」を付けて、変数名や関数名を記述します。
別名.変数名 別名.関数名()
サンプルコード
次のサンプルコードでは、mathモジュールの別名を「m」として、 変数「pi」や関数「floor」を利用しています。
import math as m print(m.pi) print(m.floor(5.4))
③ from モジュール名 import 関数名(変数名)
この記述方法はモジュール内の特定の関数や変数だけを取り込む場合に使います。 まず「from モジュール名」と記述し、その後に「import 関数名(変数名)」と 特定の関数名や変数名を記述します。変数や関数を利用する
この方法で変数や関数を使う場合、変数や関数の前にモジュール名を書く必要はありません。 いきなり変数名や関数名を使えます。
変数名 関数名()
モジュール名が不要というメリットがある反面、 プログラム内に同じ名前の関数や変数を定義してしまった場合は上手く機能しなくなります。 変数名や関数名の名前の重複に注意してください。
サンプルコード
mathモジュールから変数「pi」と関数「floor」をimportしています。 今回の場合は、「pi」と「floor」と記述するだけでそれぞれを利用できます。
from math import pi from math import floor print(pi) print(floor(5.4))
④ from モジュール名 import 関数名(変数名) as 別名
モジュールの中から特定の関数や変数を取り込んで(③のパターン)、 それらに「as 別名」で別名を付けることもできます。変数や関数を利用する
④の場合は「as 別名」でつけた別名を記述するだけです。 モジュール名も③同様に不要です。
別名で付けた変数名 別名で付けた関数名()
サンプルコード
次のサンプルコードでは、mathモジュールの変数「pi」の別名を「p」、 関数「floor」の別名を「fl」としています。 別名をそのまま記述するだけで使用できます。
from math import pi as p from math import floor as fl print(p) print(fl(5.4))
⑤ from モジュール名 import *
前提として、この方法は非推奨です。
モジュール内の全ての関数や変数を取り込むことができます。
変数や関数を利用する
⑤の場合モジュール名は不要で、すべての変数や関数名をそのまま利用できます。
変数名 関数名()
一見便利なようですが、モジュール内の全ての変数や関数名を把握して、 名前がダブらないようにする必要があるので管理が難しくなります。 ですから⑤の方法は非推奨となっています。
サンプルコード
変数「pi」や関数「floor」以外にも、mathモジュールで定義されている 変数や関数は全てその名前だけで使用できます。変数名や関数名の前に「math.」は不要です。
from math import * print(pi) print(floor(5.4))