Pythonモジュールとパッケージについて

Python

今回は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
#from module import method

from math import sqrt,tan
print(sqrt(9)) #3.0
#from module import *

from math import sqrt,tan
print(sqrt(9)) #3.0
#import module as xx
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):
    return a + b

def testA():
    print(“testA”)
④モジュールファイル「use_module.py」を作成する
import mylib.my_module1
rest = mylib.my_module1.test(12,22)
print(rest)

mylib.my_module1.testA()
タイトルとURLをコピーしました