7
這是我最好的解決方案,到目前爲止,從函數中訪問調用模塊的問題:如何獲取當前正在執行的函數被調用的模塊?
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標準庫是否提供了更健壯的方法來執行此操作?