先日のPyCon JPで、私はまたもやってしまったのである。Hands on の講師という大役を引き受けておきながら、間違った演習用のスクリプトを書いてしまった。昔からの思い込みを元に、大雑把な実験だけで書いてしまったのである。 何を間違えたかというと、Pythonのローカル名前空間の扱いだ。 昔から知っているはずなのに忘れ、http://d.hatena.ne.jp/atsuoishimoto/20101006/1286338675 でも間違えて pokarim さんにご指摘いただき、今回また間違えたんだからタチが悪い。ここはきっちりブログエントリを書いてもう「うっかり」とならないようにしよう。 問題はどんなのかというと、煎じ詰めればこのコードだ。 def spam(): locals()['ret'] = 'ham' return ret print spam() ローカル名前空間の辞