これは、関数内から呼び出しモジュールにアクセスするという問題に対するこれまでの私の最善の解決策です。
import inspect
import sys
def calling_module(level=0):
filename = inspect.stack()[level+2][1]
modulename = inspect.getmodulename(filename)
try:
return sys.modules[modulename]
except KeyError:
return sys.modules['__main__']
...しかし、 の処理に暗示されているのは、が として実行されているKeyError
場合にのみ発生する可能性があるという (ほとんど根拠のない) 仮定です。filename
__main__
Python 標準ライブラリは、これを行うためのより堅牢な方法を提供していますか?