Pythonには定数という仕組みがないという事を知る【Python】

技術

はじめに

Pyhtonは定数という仕組みがないという事を知りました。

定数自体は私もPythonで使ってます。

しかし、普段使っている定数は「特定の命名規則の変数の場合は定数として扱うというルール」で使われているものという事を知りました。

Pythonの定数定義の仕方(ルール)

Pythonでは大文字+アンダースコアで宣言されている変数は慣習的に「定数」として扱います。

これはルールによって「この変数は定数として扱うので、一度定義したら再定義しないでね」という信頼のもとで成り立っています。

実際にPyhtonの定数は再定義できるのか

簡単に試してみました。

下記コードで、Pythonの定数は変数なのかを確かめています。実行結果はコード内に記載しています。

# 定数を定義
DEFINE_TEST = 0

print(DEFINE_TEST) # 結果: 0

# 定数を再定義してみる
DEFINE_TEST = 1

print(DEFINE_TEST) # 結果: 1
Python

値が変わったのでどうやら本当に変数ってことですね。

まとめ

Pythonの定数は実際には変数という事が分かりました。

ただ、大文字+アンダースコアで定義すれば、「定数」とするという慣習があるので、普段は意識はしなくても良いと思いますが、「その実態は変数で、値を変更しようと思えばできてしまう」という事は頭の片隅に入れておくと良いのかなと思いました。