在python中的嵌套函数中获取范围外引用
在python中,是否有一种方法可以使用在python中的嵌套函数中获取范围外引用,python,scope,Python,Scope,在python中,是否有一种方法可以使用inspect.getclosurevars()(或其他方法)来确定内部函数是否引用了全局/非局部范围中的任何内容?例如: import inspect import pandas as pd def someFun(): def innerFun(): def innerFun2(): return pd.DataFrame() print(inspect.getclosurevars(someFun)
inspect.getclosurevars()
(或其他方法)来确定内部函数是否引用了全局/非局部范围中的任何内容?例如:
import inspect
import pandas as pd
def someFun():
def innerFun():
def innerFun2():
return pd.DataFrame()
print(inspect.getclosurevars(someFun))
# ClosureVars(nonlocals={}, globals={}, builtins={}, unbound={}) - does not indicate that pd is referenced
这里的
innerFun
和innerFun2
在someFun
中定义innerFun2
正在引用熊猫,但是getclosurevars
没有指出这一点。是否有办法确定在someFun
中引用了哪些模块和其他超出范围的内容?您需要访问innerFun2
,someFun
可能不知道这一点。