【Python3】モジュールとパッケージ

モジュール

py ファイルはモジュールとして扱うことができて、import 文で読み込みます。
読み込んだモジュールのクラス、関数、変数は、「モジュール名.識別子」で参照することができます。
また、モジュールの冒頭には、"""…""" で ドキュメントストリング を記述することができます。

mymod.py

def myfunc():
    print "Hello!"
import mymod

mymod.myfunc()

パッケージ

複数のモジュールをまとめてパッケージとして扱うことができます。
パッケージは、__init__.py という名前のファイルを持つフォルダを指します。
__init__.py には、必要であればパッケージの初期化処理を記述します。

import

import 文を使うとパッケージの中からモジュールや識別子(クラス、関数、変数…)をインポートできます。
読み込むモジュールや識別子を複数記述することもできます。
また、読み込んだモジュール名や識別子に別名をつけることもできます。

「from パッケージ import *」形式を使用するには、
パッケージの __init__.py ファイルに読み込み対象のモジュールリストを __all__ に定義しておく必要があります。
from には、. や .. を用いて、パッケージを相対的に指定することができます。

# import [パッケージ.]モジュール
import mypack1.mypack2.mymod
mypack1.mypack2.mymod.myfunc()

# from パッケージ import モジュール
from mypack1.mypack2 import mymod
mymod.myfunc()

# from パッケージ import *
from mypack1.mypack2 import *
mymod.myfunc()

# from [パッケージ.]モジュール import 識別子
from mypack1.mypack2.mymod import myfunc
myfunc()

# from [パッケージ.]モジュール import *
from mypack1.mypack2.mymod import *
myfunc()

__package__

__package__ は、現在のパッケージ名を示します。

print __package__
myfunc()

__file__

__file__ は、現在のファイル名を示します。

print __file__
myfunc()

__name__

__name__ は、現在のモジュール名を示します。
スクリプトとして起動されたメインモジュールの場合は __main__ という名前が設定されます。

__builtin__

__builtin__ は、open() などのビルトインオブジェクトを包含する仮想的なモジュールを示します。

Python3入門

Posted by 管理人