kjo*_*kjo 9 python introspection
到目前为止,这是我从函数中访问调用模块的问题的最佳解决方案:
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__']
Run Code Online (Sandbox Code Playgroud)
......但是在处理中隐含的KeyError是(基本上没有根据的)假设它只有在filename被运行时才会发生__main__.
Python标准库是否提供了更强大的方法来执行此操作?
jme*_*etz 10
我发现以下效果很好:
import inspect
def printfunc()
stk = inspect.stack()[1]
mod = inspect.getmodule(stk[0])
print("Currently in {}.{}".format(mod, stk[3]))
Run Code Online (Sandbox Code Playgroud)
我在一个叫做类似的实用函数里面 printfunc()
| 归档时间: |
|
| 查看次数: |
963 次 |
| 最近记录: |