Pythonでは、定数を定義するための組み込みの概念はありません。しかし、定数のように振る舞う変数を作成するための一般的な方法があります。これは、特定の値を持つ変数を作成し、その値がプログラムの実行中に変更されないようにすることです。
外部モジュールを使用した定数の定義
Pythonでは、定数を外部モジュールとして定義し、それを他のモジュールでインポートすることが可能です。以下にその例を示します。
# constant.py
PI = 3.14
上記のconstant.py
というモジュールファイルを作成します。このファイルには、PI=3.14
というグローバル変数が定義されています。次に、このconstant.py
をインポートして、定数PI
を使用します。
# main.py
import constant
print(constant.PI) # Output: 3.14
この方法では、constant.py
のPI
という値は、プログラムの実行中に変更されることはありません。しかし、Pythonの言語仕様上、このPI
は厳密には定数ではなく、変数です。そのため、意図しない値の上書きを防ぐための追加の仕組みが必要となります。
値の上書きを防ぐ
値の上書きを防ぐためには、特殊なクラスを作成します。以下にその例を示します。
# const.py
class _const(object):
class ConstError(TypeError): pass
def __setattr__(self, name, value):
if name in self.__dict__:
raise self.ConstError()
self.__dict__[name] = value
import sys
sys.modules[__name__] = _const()
上記のconst.py
を保存した後、以下のように定数を定義できます。
# constant2.py
import const
const.PI = 3.14
このconst.PI
は上書きすることができません。
以上がPythonで外部定数を扱う一般的な方法です。これらの方法を活用することで、Pythonプログラムの柔軟性と再利用性を向上させることができます。