はじめに
Pyhtonは定数という仕組みがないという事を知りました。
定数自体は私もPythonで使ってます。
しかし、普段使っている定数は「特定の命名規則の変数の場合は定数として扱うというルール」で使われているものという事を知りました。
Pythonの定数定義の仕方(ルール)
Pythonでは大文字+アンダースコアで宣言されている変数は慣習的に「定数」として扱います。
これはルールによって「この変数は定数として扱うので、一度定義したら再定義しないでね」という信頼のもとで成り立っています。
実際にPyhtonの定数は再定義できるのか
簡単に試してみました。
下記コードで、Pythonの定数は変数なのかを確かめています。実行結果はコード内に記載しています。
# 定数を定義
DEFINE_TEST = 0
print(DEFINE_TEST) # 結果: 0
# 定数を再定義してみる
DEFINE_TEST = 1
print(DEFINE_TEST) # 結果: 1
Python値が変わったのでどうやら本当に変数ってことですね。
まとめ
Pythonの定数は実際には変数という事が分かりました。
ただ、大文字+アンダースコアで定義すれば、「定数」とするという慣習があるので、普段は意識はしなくても良いと思いますが、「その実態は変数で、値を変更しようと思えばできてしまう」という事は頭の片隅に入れておくと良いのかなと思いました。