【Python入門】モジュール- Python初心者勉強記029
モジュールとは、プログラム内で何度も利用される、関数やクラスなどのコードのまとまりのことです。
Pythonでは、関数やクラスの定義を一つのファイルにまとめたものをモジュールとしています。
複数のモジュールをフォルダにまとめたものはパッケージとなります。
今回はモジュールをプログラム内で利用する方法について見ていきます。
単一ファイルのモジュールの利用
テストのために次のファイルを用意します。
[testmodule.py]
# testmodule.py
TEST_VARIABLE = 3.14 #クラス変数
def test_func():
print('test_func')
class test_class():
pass
基本のインポート文
モジュール内で定義された属性は、import文を用いて他のコードから参照することができます。
ファイルがカレントディレクトリにある場合は
import module名
でimportすることができます。
ファイルが別のディレクトリにある場合はパスを通す必要があります。(やり方は後述)
>>> import testmodule
>>> testmodule.TEST_VARIABLE
3.14
便利なインポート
次のようにすると、指定したモジュール属性をローカルな名前空間で使用することができます。
>>> from testmodule import TEST_VARIABLE, test_func
>>> TEST_VARIABLE
3.14
モジュール属性全てをインポートしたい場合は以下のようにします。
>>> from testmodule import *
>>> TEST_VARIABLE
3.14
別名で使用したい場合は以下のようにします。
>>> import testmodule as test
>>> test.TEST_VARIABLE
3.14
パッケージの利用
フォルダ内の複数のPythonファイルを参照したい場合は、そのフォルダに__init__.pyを置きます。
こうすることで、そのフォルダはパッケージとなります。
例えば、以下のようなファイル構造を考えます。
parentpackage
|
— __init__.py
— parentmodule.py
— childpackage
|
— __init__.py
— childmodule.py
ここでparentpackage直下のファイルを参照する場合は、
from parentpackage import parentmodule
更に、childpackage内のファイルを参照する場合は、
from parentpackage.childpackage import childmodule
で参照することができます。
モジュールのパスを通す
モジュールをimportする際には、モジュールが入っているフォルダにパスが通っている必要があります。
sys.pathに検索パスを追加することでパスを通すことができます。
>>> import sys
>>> sys.path.append(os.path.abspath('temp'))
>>> import testmodule1
スクリプトとしてその場で実行する
Pythonファイルはモジュールとしてimportする以外にも、スクリプトとしてその場で実行する場合もあります。
スクリプトとしてその場で実行したい場合は、
ファイルの最下部で
「if __name__ == __main__:」として、スクリプトコードを書きます。
[testscript.py]
#testscript.py
def main():
print('hello')
if __name__ == '__main__':
main()
$ python testscript.py
hello
Python入門講座の次の記事はこちら => 【Python入門】正規表現- Python初心者勉強記030