首页 > 解决方案 > 如何获取范围内可用的所有变量?

问题描述

如果我有以下代码:

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提供。

标签: python

解决方案


只有在实际包含对变量的访问时才会触发提供inner访问权限的闭包变量机制。否则,不会被保存,并且没有内省会让您访问它。var_outerinnervar_outervar_outer


推荐阅读