>>622
いや、varやletを使うならglobalやnonlocalは要らなくなるだろ?

Pythonでは代入と宣言を区別していないから今みたいに
スコーピングルールが奇怪になっているのであって、
varやletで常に宣言させるなら、一般的なレキシカルスコーピングに出来るだろ

Pythonでは、
x = 123
がxというローカル変数を導入したいのか、xは環境をさしているのかが区別できない
だから、nonlocalやglobalのような糞が必要になる

varやletがある言語なら、varやletが無いなら単なる代入だから
意図は明白、もしxという変数が無いならエラーにも出来るな