フレームの説明用コード

import sys                                                                                                                                
                                                                                                                                          
def foo(x):                                                                                                                               
    print sys._getframe(0).f_locals                                                                                                       
    if x > 0:                                                                                                                             
        foo(x - 1)                                                                                                                        
                                                                                                                                          
    raise NotImplementedError                                                                                                             
                                                                                                                                          
foo(2)
{'x': 2}
{'x': 1}
{'x': 0}
Traceback (most recent call last):
  File "tmp.py", line 10, in <module>
    foo(2)
  File "tmp.py", line 6, in foo
    foo(x - 1)
  File "tmp.py", line 6, in foo
    foo(x - 1)
  File "tmp.py", line 8, in foo
    raise NotImplementedError
NotImplementedError