ローカル変数は関数の外側から参照したり書き換えたりできない、というのはプログラムをモジュール化する上では非常に重要な特徴です。普通にプログラムを組む上では、この縛りを破るべきではないとは思います。 しかし、何か事件が起きたときにはルールに縛られずに思ったことができる力が欲しいですよね。例えば下のようなコード。 def someFunc(): 何かとても時間のかかる処理 ファイルを開いて処理の結果を出力 いざ計算が終わってファイルに出力する段になって「しまった、出力先のファイルをエディタで開いていたせいで書き込みモードで開くのに失敗した!」なんていうシチュエーション、ありますよね。そんなときに泣きながらもう一度計算をやり直さないでいい方法がこちら。 def getLocals(): import sys tb = sys.last_traceback while tb.tb_next: tb

