Какой-либо язык или отладчик имеют способ распечатать цепочку объема для исследования, чтобы посмотреть на различные ситуации того, что содержит цепочка объема?
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
Хотя оба v1
и v2
определены в родительской области, только v1
фактически закрыта.