web-dev-qa-db-ja.com

モジュール自体の内部でモジュールへの参照を取得する方法は?

そのモジュール内からモジュールへの参照を取得するにはどうすればよいですか?また、そのモジュールを含むパッケージへの参照を取得するにはどうすればよいですか?

136
Ram Rachum
import sys
current_module = sys.modules[__name__]
190
truppo

そのモジュールにクラスがある場合、クラスの__module__プロパティはクラスのモジュール名です。したがって、sys.modules[klass.__module__]を介してモジュールにアクセスできます。これは関数に対しても機能します。

15
Michael

Sysモジュールをインポートしないもう1つのテクニック、そして間違いなく-あなたの好みに依存します-より簡単です:

current_module = __import__(__name__)

インポートがないことに注意してください。 Pythonは各モジュールを一度だけインポートします。

10
Uri

__name__を使用して、現在のモジュールの名前を取得できます

モジュール参照はsys.modules辞書にあります。

Python ドキュメント を参照してください

10
pkit

外部から渡すことができます:

mymod.init(mymod)

理想的ではありませんが、現在のユースケースでは機能します。

1
Sam Watkins