在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)

在python中,是否有一种方法可以使用
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
可能不知道这一点。