モジュールの中では、グローバル変数「__modname__」の値としてモジュール名(文字列)がセットされている。

Pythonにおいて、グローバル変数 __name__ があり、これはモジュールの名前(文字列)を保持しています。この変数はどのモジュールにおいても利用でき、モジュールが直接実行されるか、他のモジュールにインポートされるかに関わらず、そのモジュールの名前を取得することができます。

例えば、次のようなモジュール example_module.py を考えてみましょう:

python
# example_module.py print(__name__)

このモジュールを直接実行すると、__name__ には "__main__" という値がセットされます。

bash
$ python example_module.py __main__

一方、このモジュールを他のモジュールからインポートすると、__name__ には example_module という値がセットされます。

python
# another_module.py import example_module

この場合、example_module の名前が __name__ にセットされます。

グローバル変数 __name__ の利用は、モジュールが直接実行された場合と、他のモジュールからインポートされた場合で振る舞いを変えたい場合に便利です。例えば、特定の関数を直接実行するか、他のモジュールからインポートして使用するかに応じて、条件分岐を設定することができます。

未分類

Posted by ぼっち