如何使用 python 中的检查模块提取函数中定义的变量的值

how to extract value of a variable defined in a function using inspect module in python

我正在尝试访问在 python 模块的函数中定义的特定变量。我能够获取变量名称(使用 inspect.getmembers()) 函数,我能够提取在 (co_varnames) 属性中感兴趣的函数中定义的所有变量。如何获取分配给变量的值?这是示例代码:-

    File 1:- input.py

    class foo(self):
        def some_fun():
            some_var='abc'

    File 2:- sample.py

    imported_module = importlib.import_module(input) 
    all_varnames = inspect.getmembers(imported_module)
    -->> need value of all_varnames['some_var']    

你不在那种情况下。

局部变量仅在函数执行期间存在,即函数被调用和返回之间。您唯一的可能性是在函数调用的函数中执行此操作(或者如果它是迭代期间的生成器)。

无论如何,如果你这样做,函数返回后它仍然是无效的。

感谢大家的意见和建议。 @Thomas Wagenaar.@skyking.

这就是我最终做的事情,我在函数中定义了这样的变量:-

def testMethod(self):
    self.myvar = {'a':1,'b':2}

然后使用检查模块和 getattr(),我可以实例化 class,调用此 testMethod(因异常而失败),但到达初始化变量的位置,然后只读取多变的。我不知道解决方案是否是 "correct" 在 python 中做事的方式,但这个小技巧对我有用。