パッケージ化
Pythonでも自ら作成したモジュールなどをパッケージ化することができます。 パッケージ化によって、モジュールの整理や名前の衝突が避けられるようになりますので是非とも覚えておきましょう。
Pythonでモジュールのインポートをする時には「sys」モジュールの「path」内に記述されているパスにフォルダやファイルが無くてはなりません。 デフォルトのパス以外の場所にモジュールを配置したい場合は、インポートを実行する前にパスを追加しておきましょう。 今回は「c:/python」配下に「com.pythonizm」を用意し、「calc」モジュールを作成します。フォルダ・ファイルの構成は次の通りです。
■c: ■python(フォルダ) ■com(フォルダ) ■pythonizm(フォルダ) ■calc.py(モジュールファイル)
しかしこれだけではPython上においてパッケージであると認識してくれませんので、「__init__.py」というファイル名で初期化ファイルを用意し、それぞれのフォルダへ配置します。「__init__.py」ファイルの中身は空で構いません。
■c: ■python(フォルダ) ■com(フォルダ) ■__init__.py(初期化ファイル) ■pythonizm(フォルダ) ■__init__.py(初期化ファイル) ■calc.py(モジュールファイル) ■__init__.py(初期化ファイル)
次は実際にインポートを行ってみましょう。
今回インポートを行う「calc」モジュールのコードは下記の通りとなります。「c:/python/com/pythonizm」へ配置してください。
# -*- coding: utf-8 -*-
def plus_value(value_1, value_2):
return value_1 + value_2
続いてモジュールのインポートを行い「plus_value」関数を呼び出すコードを記載します。
# -*- coding: utf-8 -*-
import sys
sys.path.append('c:/python')
import com.pythonizm.calc
print com.pythonizm.calc.plusValue(1, 1)
5行目で検索パスの追加を行っており、これでそのパスをインタプリタが探してくれるようになります。 7行目はパッケージ内に配置されているモジュールのインポートです。 「 . 」をセパレータとして使用し、対象のモジュールのインポートを行っています。 そして8行目でモジュール内の「plus_value」関数を呼び出し、結果を取得・表示しています。
--実行結果--
2
名前の無い関数?lambda式!
