Python: クラスをモジュール化(別ファイル化)する
Pythonでクラスを作成する際に、 規模の小さなプログラムならクラス定義とインスタンス作成を同じ ファイルに記述しても特に問題はありません。 ですが開発規模が大きくなると、 クラス定義の部分を別ファイルにした方が開発しやすくなります。
ここではクラス定義をモジュール化(別ファイル化)し、 モジュールを読み込んで使用する方法を説明します。
モジュール化する
使用するファイルは次の2つです。
- myperson.py(クラスを定義)
- test.py(メインファイル。mypersonを読み込む)
まずはクラスを定義するファイル「myperson.py」
myperson.py
class Person: # コンストラクタ def __init__(self, name): self.name = name def getName(self): return self.name
補足:今回はPersonクラスだけを記述していますが、 このmyperson.pyに別のクラス定義や関数を記述することもできます。
次に「test.py」
test.py
import myperson # インスタンス作成 p = myperson.Person("田中") print(p.getName())
モジュールの読み込みは次のようにimport文の後にモジュール名を記述します。
import モジュール名 # 具体例 import myperson今回読み込むのは「myperson.py」です。 このファイルの拡張子を除いたファイル名部分をimportの後に記述します。
モジュール内のクラスや関数を利用する場合は次のように記述します。
変数 = モジュール名.クラス名や関数名 # 具体例 p = myperson.Person("田中")
モジュール名の後にドット「.」で繋いでクラス名や関数名を記述します。