Pythonの定数
定数とは
「定数」とは一度設定した値を後から変更できない値のことを言います。
その特性を利用して、数値や文字列を、意味のある名称の定数として定義し、プログラムの読みやすさや品質の向上などに利用します。
例えば、プログラムで右か左かを判断するような場合に、数値の1を右、2を左としてプログラムを書くよりも、数値の1と2をそれぞれ定数として定義したRIGHTとLEFTを使う方がプログラムの意味が分かりやすくなります。
Pythonには定数がない?その理由は?
Pythonには組み込み定数と呼ばれるPythonで事前に決められた「True」や「False」などの定数はありますが、プログラマーが自由に作成できる定数の仕組みはありません。
なぜ定数の仕組みがないのかを公式に発表されていないため正確な理由は分かりませんが、他のプログラミング言語では定数の仕組みがあることを考えると、意図的に無くしているのではないかと考えられます。
その理由ですが「規約がしっかりしていれば定数は不要」という考えがあると思われます。
というのも、きちんとしたコーディングルールなどを遵守したプログラムの場合、年月を経て機能拡張があっても既存の定数の値を変えることがほとんどありません。
プログラムを修正する度に定数の値を頻繁に変更するような状況の場合は、そもそも定数の使い方を間違っている状況にあることが極めて高いです。
コーディング規約などを書いたことがある方やルールの順守を考える機会がある方であれば、「きちんとコーディング設計を行っているプログラムの定数の値を変更することはよほどのことがないと行わない」ということを経験則で知っています。
おそらくこれがPythonに定数がない理由だと思います。
Pythonは他のプログラミング言語と異なり、書き方の融通が利かない点がいくつかありますが、これは言い方を変えれば、誰が見ても分かりやすいプログラムになりやすい、という利点もあります。
そこでPythonの作者は言語仕様として書き方のルールを厳格化することで定数を削除するという選択をしたのではないかと思います。
でも定数を使いたい
ではPythonで定数を使いたい場合はどうするかというと、変数で代用します。
変数なので値の変更は可能ですが、定数をして扱うため初期値設定後の変更は「ルール」として行いません。
Pythonで変数を定数として利用する場合は、慣例として定数名を大文字の英数字とアンダースコアで構成するようにします。
1 2 |
MIN_ROW = 1 MAX_ROW = 100 |
このように定数名と変数名の書き方を変えることで、定数なのか変数なのかを見分けられるようになります。
次にやること
次のページでは、Pythonプログラムで扱うデータ型の基本について紹介します。
次ページ:Pythonのデータ型の基本
前ページ:Pythonの変数