gpt4 book ai didi

python - 如何获取调用当前正在执行的函数的模块?

转载 作者:太空狗 更新时间:2023-10-29 20:20:30 27 4
gpt4 key购买 nike

这是迄今为止我解决从函数内访问调用模块问题的最佳解决方案:

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 标准库是否提供了更强大的方法来执行此操作?

最佳答案

我发现以下方法效果很好:

import inspect
def printfunc()
stk = inspect.stack()[1]
mod = inspect.getmodule(stk[0])
print("Currently in {}.{}".format(mod, stk[3]))

我在一个名为 printfunc()

的实用函数中

关于python - 如何获取调用当前正在执行的函数的模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11904960/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com