python3.doc_07
R e i - D r e a m
for Laravel
TOP > Python3 > Python基本(モジュールとパッケージ)
Guest
login

最終投稿日:2022年6月18日

Python基本(モジュールとパッケージ)
モジュール
●簡単なモジュール(index.pyを実行する)
[/home/guest/python15h/chapter01/hoge.py]
    def foo( n ):
        return n + 2
[/home/guest/python15h/chapter01/index.py]
    import hoge                                                                        ※hoge.pyをインポートする
    print( hoge.foo( 5 ) )                                                         ※7となる
●from~import
上の例では、関数を利用するのに[hoge.foo(5)]とコードが長くなってしまう。
以下の様に直接関数をインポートする方法もあります。
[/home/guest/python15h/chapter01/index.py]
    from hoge import foo                                                      ※hoge.pyからfoo関数をインポートする
    print( foo( 5 ) )                                                                     ※7となる
【メモ】
インポートしたモジュールは AS句を使い別名で管理できます。
例)
    import myHogeHoge as hoge
    from mypackage.mymodul import myAdd as add
パッケージ
ディレクトリ内に[__init__.py]が存在すると、そのディレクトリはパッケージとなる(ファイルは空で良い)
例)
[/home/guest/python/chapter01]
                               |
                               +----- [index.py]
                               +------【mypackage】
                                                             |
                                                             +------- [__init__.py]
                                                             +------- [mymodul.py]
                                                                                           ※ここに関数[myAdd]があるとする
[index.py]
import mypackage.mymodul
print( mypackage.mymodul.myAdd() )
または、
from mypackage import mymodul
print( mymodul.myAdd() )
または、
from mypackage.mymodul import myAdd
print( myAdd() )
特殊変数
モジュール、パッケージには名前やファイル名を取得する特殊な変数が定義されています。
     __file__                                そのファイルのフルパスを表示
     __name__                           ファイル名を表示(拡張子はなし)
【メモ】
__name__は、直接実行されているファイルの場合は必ず[__main__]となる。
なので、例えば以下の様な分岐が可能
if __name__ == '__main__':
# 何か処理。。。            ※直接このファイルが実行されている(importされたファイルじゃない)
きっぷる
ログインしてコメントを残そう!!


きっぷる