Python: import文でパッケージ内のモジュールを取り込む方法

パッケージとは複数のモジュール(.pyファイル)が集まったもので、 実体はフォルダです。
ここではPythonのimport文でパッケージ内のモジュールを取り込む方法を紹介します。

単にモジュールを取り込む方法は次の記事を参照してください。
import文でモジュールを取り込む方法5パターン

モジュール、パッケージ、ライブラリの意味があいまいな方は 次の記事を参考にしてください。
ライブラリ、パッケージ、モジュールの関係・違い

① import パッケージ名.モジュール名

パッケージ名の後に「.」ドットを付けてモジュール名を記述します。
一番わかりやすい形式ですが、 パッケージやモジュールの名前が長いとその分コードも長くなります。

変数や関数を利用する

モジュール内の変数は関数を利用する場合は「パッケージ名.モジュール名」 の後に「.」を付けて変数名や関数名を記述します。

パッケージ名.モジュール名.変数名

パッケージ名.モジュール名.関数名()

サンプルコード

次のサンプルコードでは、 httpパッケージの中にあるclientモジュールをインポートしています。

import http.client

con = http.client.HTTPSConnection("https://www.google.co.jp/")

② from パッケージ名 import モジュール名

「import モジュール名」の前に「from パッケージ名」を付けます。 英単語 fromは「~から」という意味です。 利用時にパッケージ名を記述する必要がないため、 コードが多少短くなるというメリットがあります。

変数や関数を利用する

②の場合は、変数や関数を利用する場合はパッケージ名は書かなくて構いません。 モジュール名.関数()で利用できます。

モジュール名.変数名

モジュール名.関数名()

サンプルコード

from http import client

con = client.HTTPSConnection("https://www.google.co.jp/")

③ from パッケージ名.モジュール名 import 関数名(変数名)

パッケージの中のモジュールから 特定の関数や変数だけを取り込む場合です。
fromでパッケージ名.モジュール名と書いてモジュール名までを指定します。 その後importで特定の関数や変数をとりこみます。

変数や関数を利用する

③の場合、パッケージ名とモジュール名を書く必要はなく、 取り込んだ関数名(変数名)をいきなり使うことができます。 この場合は同じ名前の関数や変数を作らないように注意する必要があります。

変数名

関数名()

サンプルコード

下のように、いきなりHTTPConnection()と書けるので コードが短くなります。

from http.client import HTTPConnection

con = HTTPConnection("https://www.google.co.jp/")

関数(変数)の呼び出し方に迷ったらimportの右側を見る

これまで見たように、パッケージの中のモジュールを取り込んで、 モジュール内の関数や変数を利用するときに 記述方法が3通りあります。

① パッケージ名.モジュール名.関数名(変数名)

② モジュール名.関数名(変数名)

③ 関数名(変数名)

関数や変数の呼び出し方に迷ったら、importの右側を見てそこから記述すればOKです (逆に言うと from部分は省略できます)。

① import パッケージ名.モジュール名

② from パッケージ名 import モジュール名

③ from パッケージ名.モジュール名 import 関数名(変数名)

全て「as 別名」で別名を付けることができる。

説明が冗長になるので省略しましたが、 ①から③まで最後に「as 別名」を付けることで別名を利用できます。

① import パッケージ名.モジュール名 as 別名

② from パッケージ名 import モジュール名 as 別名

③ from パッケージ名.モジュール名 as 関数名(変数名) as 別名

パッケージ名やモジュール名が長い場合は 別名を付けるとシンプルに記述できます。

Python