如果我有以下代码:
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)都不会让您访问它。
