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
.