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
雖然在父範圍中定義了v1
和v2
,但實際僅關閉了v1
。
我很想看到這樣的工具;也許有人想出了一個DXCore插件來做到這一點。 – Pierreten 2010-05-03 23:10:44