Scope 是否有任何语言(或调试工具)具有用于打印范围链的内置函数或方法?

Scope 是否有任何语言(或调试工具)具有用于打印范围链的内置函数或方法?,scope,closures,scope-chain,Scope,Closures,Scope Chain,是否有任何语言或调试工具可以打印出作用域链以供检查,从而查看作用域链包含的内容的不同情况?Firebug对JavaScript的作用。在“脚本”调试器的“监视”选项卡上,可以打开作用域链列表,查看每个父作用域 如果抓取代码对象,Python可以从语言本身的父作用域读取局部变量,但它处理嵌套作用域的方式意味着只有实际使用的作用域变量被绑定: >>> def a(): ... def b(): ... print v1 ... v1= 1 ...

是否有任何语言或调试工具可以打印出作用域链以供检查,从而查看作用域链包含的内容的不同情况?

Firebug对JavaScript的作用。在“脚本”调试器的“监视”选项卡上,可以打开作用域链列表,查看每个父作用域

如果抓取代码对象,Python可以从语言本身的父作用域读取局部变量,但它处理嵌套作用域的方式意味着只有实际使用的作用域变量被绑定:

>>> def a():
...     def b():
...         print v1
...     v1= 1
...     v2= 2
...     return b

>>> f= a()
>>> f.func_code.co_freevars
('v1',)
>>> f.func_closure
(<cell at 0x7fb601274da8: int object at ...>,)
>>> f.func_closure[0].cell_contents
1
>>定义a():
...     def b():
...         打印v1
...     v1=1
...     v2=2
...     返回b
>>>f=a()
>>>f.func_code.co_freevars
(‘v1’,)
>>>f.func_闭包
(,)
>>>f.func_闭包[0]。单元格内容
1.

虽然父范围中定义了
v1
v2
,但实际上只有
v1
是关闭的。

我希望看到这样的工具;也许有人想出了一个DXCore插件来实现这一点。