Skip to main content
 首页 » 编程设计

python之如何获得范围内的所有变量

2025年05月04日12mfryf

如果我有以下代码:

var_global = "global" 
def outer() : 
    var_outer = "outer" 
    def inner() : 
        var_inner = "inner" 
        # How to get here all variables available (it should contain 
        # var_inner, var_outer, var_global)? 
        print("inner", locals(), globals()) 
    return inner 

然后我跑:

outer()() 

我想在 print 位置获取所有变量。这也应该包括 var_outer。但是 locals 和 globals 都没有提供它。

请您参考如下方法:

提供 inner 访问 var_outer 的闭包变量机制只有在 inner 实际上包含对 var_outer 的访问时才会触发 变量。否则,var_outer 不会被保存,任何内省(introspection)都不会让您访问它。