Есть ли в каком-либо языке (или инструменте отладки) встроенная функция или метод для распечатки цепочек областей действия? - PullRequest
1 голос
/ 04 мая 2010

Есть ли у какого-либо языка или инструмента отладки способ распечатать цепочку областей для проверки, чтобы посмотреть на различные ситуации, которые содержит цепочка областей?

1 Ответ

2 голосов
/ 04 мая 2010

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...