【Python入門】ライブラリ・モジュール・クラスの違いを徹底解説!import構文の読み方がわかるようになる

Pythonのコードでよく見かける from xxx import yyy という書き方。

「ライブラリ?モジュール?クラス?何が何だか分からない…」

という人も多いのではないでしょうか?

この記事では、初心者がつまずきやすい ライブラリ・モジュール・クラスの関係と、import の正しい読み方を具体的な例でやさしく解説します。

ライブラリ・モジュール・クラスの関係とは?

Pythonで何か機能を使いたいときは、多くの場合「外部の部品(=ライブラリ)」を読み込んで使います。

よくある構造は次のようになっています:

この3つの関係を具体例で見てみましょう。

具体例①:from dateutil.relativedelta import relativedelta

この1文を分解してみます。

読み方と構造:

  • dateutil:ライブラリ(パッケージ)名
  • relativedeltadateutil に含まれるモジュール(=relativedelta.pyというファイル)
  • relativedelta(右側):そのモジュールの中で定義されているクラス(または関数)

つまりこのコードは:

dateutil ライブラリの relativedelta モジュールの中にある relativedelta クラスを使えるようにする」

という意味になります。

実際の使用例(簡単に)

使い方はとても簡単ですが、クラスをどこから持ってくるかがこのインポートで決まっています。

具体例②:import pandas as pd

次はよく使われる pandas の例です。

これは:

  • pandas:ライブラリ全体を読み込む
  • as pd:短い名前(別名)をつけて使う

という意味で、次のように書けるようになります:

裏ではこういう構造になっている

  • pandas(ライブラリ)
    • coreioutil など複数のモジュールに分かれている
    • DataFrameSeries などのクラスは pandas.core.frame などで定義されている

pandas の場合はよく使う機能をまとめて提供してくれるので、普通は全部を import pandas だけで済ませます。

どんなときに from xxx import yyy を使うのか?

Pythonでは、ライブラリごとに多くの機能(関数やクラス)が含まれています。

すべてをまとめてインポートすることもできますが、「この1つだけ使いたい」という場合に便利なのが from xxx import yyy の書き方です。

この構文を使うことで、次のようなメリットがあります。

使いたい機能が1つだけでいいとき

ライブラリ全体を読み込むのは少し重たいし、名前も長くなりがちです。

もし「その中の1つの関数しか使わない」のであれば、必要なものだけインポートした方が効率的です。

たとえば、平方根を求める sqrt() 関数だけを使いたい場合:

このように書けば、sqrt() を単独でそのまま呼び出すことができます。

長いモジュール名を何度も書かなくて済む

もし from を使わずに import math だけで済ませると、こうなります:

このように、関数を使うたびに「math.」という接頭辞をつけなければなりません。

ですが from math import sqrt としておけば:

  • コードが短くて見やすい
  • 同じ関数を何度も使うときに楽
  • 読み手にも分かりやすい

というメリットがあります。

このように①使いたい機能が1つだけの時、②長いモジュール名を何度も書きたくない時などにfrom xxx import yyy という書き方を使います。

まとめ

用語意味
ライブラリ機能をまとめた「部品箱」dateutil, pandas, math
モジュールライブラリ内の .py ファイルrelativedelta.py, math.py など
クラスモジュールの中にある「設計図」や「型」relativedelta, DataFrame, sqrt

Pythonの import 構文は、ライブラリ → モジュール → クラス/関数 の階層をたどって、必要な機能だけを取り出して使うための仕組みです。

from X.Y import Z は「XライブラリのYモジュールからZを使う」と覚えておけば、初見でも理解しやすくなります。

構造がわかると、ドキュメントやエラーメッセージも読みやすくなるので、ぜひこの考え方を身につけておきましょう!

おすすめの記事