今回はPythonのモジュールとパッケージについての内容を紹介します。モジュールはpythonコードをまとめたファイルのこと.
モジュール
モジュールimport方法
import module | モジュールを読み込む |
from module import method, class | モジュールからメソッド,クラスを読み込む |
from module import * | モジュールからすべてを読み込む |
import module as xx | 新しく名前をつけてインポート |
from module import method, class as xxx | 新しく名前をつけてインポート |
#import module
import math
print(math.sqrt(9)) #3.0
import math
print(math.sqrt(9)) #3.0
#from module import method
from math import sqrt,tan
print(sqrt(9)) #3.0
from math import sqrt,tan
print(sqrt(9)) #3.0
#from module import *
from math import sqrt,tan
print(sqrt(9)) #3.0
from math import sqrt,tan
print(sqrt(9)) #3.0
#import module as xx
import time as tt
import time as tt
tt.sleep(2)
print(“OK”)
モジュール作成
モジュールの実体は通常のPythonスクリプトファイルです。モジュールの作成にあたり、特別な措置や記法は不要です。以下内容のファイルmy_module.pyを作成しました。
def test(a, b):
return a + b
if __name__ == ‘__main__’ :
res = test(23,32)
print(res)
以下内容のファイルuse_module.pyを作成
import my_module
rest = my_module.test(12,22)
print(rest)
モジュールの検索パス
import mymodule とすると、下記の順で my_module.py が検索され、最初に見つかったモジュールがインポートされます。
1)ビルトイン・モジュールの my_module.py
2)sys.path に登録されているディレクトリ内の my_module.py(デフォルトでは下記のディレクトリが登録されます)
①実行したスクリプトと同じディレクトリ
②環境変数 PYTHONPATH に指定したディレクトリ
③Python インストーラに応じたデフォルトディレクトリ
__all__変数
__all__変数をインポートするモジュール名をリストにして定義しておきます。
リストで指定したモジュールのみをインポートするように制限できます。
以下内容のファイルmy_module.pyを作成しました。
def test(a, b):
return a + b
def testA():
print(“testA”)
__all__ = [‘test’]
以下内容のファイルuse_module.pyを作成
from my_module1 import *
rest = test(12,22)
print(rest)
testA() #実行できない
パッケージ
モジュールファイルをディレクトリでまとめていきます.ディレクトリの中に「__init__.py」という空のファイルを作る必要があります.このディレクトリはパッケージとして使われると言うことを示しています.
パッケージ作成
①ディレクトリ「mylib」を作成する
②mylibにファイル「__init__.py」を作成する
③mylibにモジュールファイル「my_module1.py」を作成する
#my_module1.pyのコード:
def test(a, b):
④モジュールファイル「use_module.py」を作成するdef test(a, b):
return a + b
def testA():
print(“testA”)
import mylib.my_module1
rest = mylib.my_module1.test(12,22)
print(rest)
mylib.my_module1.testA()