パッケージを作る

作ったクラス,関数を自前のパッケージとしてインポートして使えるようにします.

モジュール

Pythonサーチパス,カレントフォルダに置かれたPythonスクリプトはモジュールとしてインポートできます.

例えば,カレントフォルダに以下のようなファイル “mymodule.py” を置きます.

#!/usr/bin/python
# -*- coding: utf-8 -*-

class MyClass:
    pass

def myFunc():
    print "This is a very nice function."

CONST = 100

インタラクティブコンソールで以下のように使うことができます.

>>> import mymodule as mm
>>> A = mm.MyClass
>>> A.attr = 100
>>> print(A.attr)
100
>>> mm.myFunc()
This is a very nice function.
>>> print(mm.CONST)
100

パッケージ

複数のモジュールの集まりがパッケージです.たとえば,次のようにフォルダ構造を作ってファイルを置いてやります.

###

mypackage
│  mymodule.py
│  __init__.py
│
├─subdirone
│      mod_one.py
│      __init__.py
│
└─subdirtwo
        mod_two.py
        __init__.py

###

__init__.py は,空のファイルでも構いません.あるいはサブフォルダのモジュールをインポートする文を入れてもいいかもしれません.いずれにせよ,モジュール mymodule.py,mod_one.py,mod_two.py は以下のようにインポートできるようになります.

>>> import mypackage.mymodule as mm
>>> import mypackage.subdirone.mod_one as m1
>>> import mypackage.subdirtwo.mod_two as m2

つまり,(カレントフォルダ)/folder1/folder2/folder3/module.py というファイル名で保存されているモジュールは,folder1.folder2.folder3.module として呼び出します.(フォルダ名に数字を使わない方がいいかもしれませんが...)

以上.モジュールのファイルが増えると便利ですね

No responses yet

Leave a Reply