1

スコープチェーンに含まれるもののさまざまな状況を調べるために、スコープチェーンを検査用に出力する方法を備えた言語またはデバッグツールはありますか?

4

1 に答える 1

2

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実際には だけが閉じられています。

于 2010-05-03T23:55:39.240 に答える