なぜPythonには"標準"で定数を定義できないのか?

結論から言うと、Pythonになぜ"標準"で定数がないのかは「わかりません」。
答えを求めていた人には申し訳ない。


Pythonには知っての通り、定数を定義できません。
(独自でconstクラスを実装すれば定数らしき事はできます)
定数の実装が難しいとは考えにくいので、「Gutioは意図的に定数を排除した」と考える方が自然だと思います。


ちなみに、他のスクリプト言語での定数の扱いは以下のとおりです。

perl ... use constantで定義可能
PHP ... define()で定義可能
JavaScript ... constで定義可能
Ruby ... 全大文字の変数は初期化以外の代入には警告を出す


ほとんどの言語では、何らかの形で定数をサポートしています。
Rubyは、定数の代入に対して警告を出すのみなので、定数と呼ぶかは若干微妙ですが・・・
しかし、ここまで定数を無視する言語は珍しいと思います、逆にすがすがしいですね。


Pythonでは「なぜ標準で定数が無いのか」という問いに対して、納得できる解答に出会った事がありません。

  • タプルを使えばいいじゃん

 (タプルは定数の代わりにはなりません)

  • Rubyだって参照先から代入されてたら警告出ないし
  • True,Falseすら定数でないのに、何をいまさら・・・
  • 定数なんて飾りです、偉い人には(略)

個人的にはRubyみたいに、定数を代入すると警告を出すくらいが調度いい塩梅だと思います。
(参照先からの代入には無力だけど・・)
Pythonでも定数にできる値は、「数値型」、「文字列型」、「タプル」のみと、変更不可オブジェクト限定にすれば、定数も結構うまく処理できると思いますけどね。