global文
なんと!
びっくり。global文をつかわないと,問答無用にローカル変数の代入となるらしい。そうか。完全に変数宣言なるものがないとこうなるのか。普通名前空間はカスケーディングするもんだけど...いや、global文なくてもカスケードして問題なさそうだけど、、、宣言なしに使うということが想定されるにしたって、グローバルと同じ名前つかったらプログラマのミスな気もするけどな。。。
hoge = 10 def test(): hoge = 10 ## ローカル変数 def test2(): global hoge = 10; ## グローバル変数
まぁグローバルなんて使わないからいいけどさ。
(じゃあなんでこんなことに気づいたのか、というのは,
あるサンプルコードに含まれてたから。念のため。)