カテゴリ: Python 更新日: 2026/07/21

Pythonの定数を定義する方法!慣習とモジュールを活用した書き方

Pythonの定数を定義する方法!慣習とモジュールを活用した書き方
Pythonの定数を定義する方法!慣習とモジュールを活用した書き方

先生と生徒の会話形式で理解しよう

生徒

「Pythonの定数って、どうやって書くんですか?他の言語だとconstとか使いますよね?」

先生

「とてもいい疑問ですね。Pythonにはconstというキーワードはありませんが、定数として扱うための慣習やモジュールがあります。具体的に見ていきましょう。」

生徒

「わかりました!慣習とモジュールの両方について教えてください。」

先生

「では、まず慣習から見て、その後にconstモジュールの例も紹介しますね。」

1. Pythonでの定数の基本

1. Pythonでの定数の基本
1. Pythonでの定数の基本

Pythonには「絶対に変わらない値」を作るための専用キーワード(constなど)はありません。その代わりに、変数名をすべて大文字で書き、「これは定数として扱う値ですよ」ということを周りに伝える慣習があります。これはPythonを書く人同士で共有されている“暗黙のルール”のようなものです。

たとえば、次のように書くと「この値は途中で変更しない予定のもの」です、と示せます。


PI = 3.1415926535      # 円周率
MAX_USERS = 100        # 登録できる最大ユーザー数

このように大文字で書くことで、プログラムを読む人に「ここは重要な設定値だな」とひと目で分かってもらえるようになります。特に初心者のうちは、設定値や変えてほしくない値を大文字でまとめておくことで、コードの整理にもつながり理解しやすくなります。

2. Pythonで定数を作るときの注意点

2. Pythonで定数を作るときの注意点
2. Pythonで定数を作るときの注意点

Pythonには「定数として絶対に変更できないようにする」ための仕組みがありません。つまり、大文字で書いた値であっても、技術的にはあとから別の値を代入できてしまいます。これはPythonが“柔軟さ”を大切にしている言語だからです。

ためしに、次のように同じ変数へ別の値を入れてみましょう。


PI = 3.14
print("最初の PI =", PI)

# 定数として書いていても値を変えることができてしまう
PI = 3.1415
print("変更後の PI =", PI)

出力結果は以下のようになります。


最初の PI = 3.14
変更後の PI = 3.1415

このようにPythonでは、大文字で書いていても再代入そのものは可能です。そのため、定数を扱うときは「変更しないという約束を守る」という意識が大切になります。特に複数人で開発するときには、このルールを共有することがコードの読みやすさにつながります。

3. なぜPythonには定数がないの?

3. なぜPythonには定数がないの?
3. なぜPythonには定数がないの?

「他の言語にはconstがあるのに、どうしてPythonにはないんだろう?」と疑問に思う人は多いです。これはPythonの設計思想が、「細かいルールで縛るよりも、書く人の判断やチームの約束を大事にする」という考え方を採用しているためです。その結果として、あえて専用の定数キーワードを用意せず、シンプルな文法を保っています。

Pythonでは、「本当に変えてはいけない値なのか」「途中で変える可能性があるのか」を書き手が自分で判断します。その前提の上で生まれたのが、「定数として扱うものは大文字で書く」という慣習です。

実際に、大文字で書いても値を変えることはできます。次の簡単な例を見てみましょう。


# 本来は変えないつもりの定数(という扱い)
TAX_RATE = 0.1
print("最初の税率 =", TAX_RATE)

# Pythonでは技術的には変更できてしまう
TAX_RATE = 0.08
print("変更後の税率 =", TAX_RATE)

出力結果:


最初の税率 = 0.1
変更後の税率 = 0.08

このように、Pythonの定数は「変わらない値」ではなく、「変えないようにする約束」で成り立っています。これは、学校の校則が“守る前提のルール”として成り立っているのと少し似ています。

つまり、Pythonに定数専用の仕組みがないのは欠点ではなく、「文法のシンプルさ」や「書き手の自由」を優先しているからこそ。大文字の変数名やモジュール分割を組み合わせれば、実務でも十分に安全に定数を扱えるようになります。

4. モジュールを活用して定数を管理しよう

4. モジュールを活用して定数を管理しよう
4. モジュールを活用して定数を管理しよう

定数をたくさん使うプログラムでは、専用のモジュール(ファイル)を作って、定数をまとめて管理すると便利です。たとえば、constants.pyというファイルに次のように書きます。


# constants.py
PI = 3.1415926535
MAX_USERS = 100
SITE_TITLE = "Python学習サイト"

そして、メインのプログラムファイルでこの定数モジュールを読み込みます。


import constants

print(constants.PI)
print(constants.MAX_USERS)
print(constants.SITE_TITLE)

出力結果は以下のようになります。


3.1415926535
100
Python学習サイト

このようにモジュールを分けると、プログラムがスッキリしますし、保守もしやすくなります。

5. 定数を変更されないように工夫しよう

5. 定数を変更されないように工夫しよう
5. 定数を変更されないように工夫しよう

Pythonでは、プログラム上で定数を書き換えることは技術的に可能です。でも、意図しない変更を避けたいときは、次のような方法があります。

例えば、クラスを使って定数を管理する方法です。


class _Const:
    PI = 3.1415926535
    MAX_USERS = 100

constants = _Const()
print(constants.PI)
print(constants.MAX_USERS)

このやり方だと、constants.PIの値を簡単に変更しにくくできます。厳密にロックはできないですが、コードを見た人に「これは定数です」とアピールできます。

6. 定数の便利な使い道を知ろう

6. 定数の便利な使い道を知ろう
6. 定数の便利な使い道を知ろう

定数を使うと、次のようなメリットがあります。

  • プログラム全体の意味がわかりやすくなる
  • 同じ値を何度も書かなくてすむ
  • 修正が必要なときに、一か所だけ変えればいい

例えば、税率や最大人数、サイト名などは定数にしておくと便利です。

7. ポイント整理して覚えよう

7. ポイント整理して覚えよう
7. ポイント整理して覚えよう

Pythonの定数は、厳密には「変えられない値」という仕組みではありません。だけど、大文字で書いた変数や、モジュールを活用することで、定数として安全に管理できます。

「大文字で書いたら定数だよ」とチームのみんなに伝えることが大事です。そして、モジュールに分けることで、より見やすくなります。

まとめ

まとめ
まとめ

ここまで、Pythonで定数を扱うための慣習やモジュール分割の考え方、クラスを使った管理方法まで幅広く学んできました。Pythonは他の言語と違ってconstキーワードが存在しないため、どうやって「変えてはいけない値」を表現するのか最初は戸惑う人も多いですが、実際には慣習にもとづいて大文字で記述したり、専用のモジュールを作って管理したりすることで十分に安全で読みやすいコードを構築できます。とくに、複数のファイルにまたがって定数を利用する場面では、ひとつのモジュールに定数をまとめておくことが後々の保守性を高めるうえでとても効果的です。 また、クラスを活用した定数管理のように、少し工夫を加えることで定数を誤って変更してしまうリスクを下げる方法も存在します。大規模なプロジェクトでは、値の管理が曖昧だと後でバグの原因となることもあるため、自分たちの開発スタイルに合わせて最適な方法を選ぶことが重要です。大文字で名前を付けるという単純なルールから、モジュール化、クラス化と段階的に工夫を重ねることで、Pythonでも十分に整理された定数管理が実現できます。 さらに、税率や設定値、サイト名、ステータスなど、アプリケーションのあらゆる場所で利用する値を定数化しておくと、変更が必要になった際も一箇所を変えるだけで済むため、保守の手間を大きく減らせます。特にチーム開発においては、値の意味を共有しやすくなるというメリットも大きく、コードの読み手が「これは変わらない値なんだな」と直感的に理解できるようになります。こうした小さな積み重ねが、結果的に品質の高いコードへとつながっていきます。 以下に、今回学んだ内容をまとめつつ、実際の定数モジュールと利用例をひとつにまとめたサンプルコードを掲載します。実務でもそのまま応用できる形になっているので、ぜひ手を動かしながら理解を深めてみてください。

総まとめサンプルコード


# constants.py
PI = 3.1415926535
MAX_LOGIN_COUNT = 5
SITE_TITLE = "学習用Pythonサイト"

# main.py
import constants

def show_info():
    print("円周率:", constants.PI)
    print("最大ログイン回数:", constants.MAX_LOGIN_COUNT)
    print("サイト名:", constants.SITE_TITLE)

def update_try(value):
    # 万が一変更されたとしても警告を出す例
    if value > constants.MAX_LOGIN_COUNT:
        print("警告:定数を超えた値が設定されています")

show_info()
update_try(10)

このように、値をひとまとめにして別モジュールから参照することで、定数の意味が明確になり、コード全体の構造も自然と読みやすくなります。大文字で書くという慣習も、見た瞬間に「変わらない値」という印象を与えてくれるため、Pythonにおける定数管理の基本として広く浸透しています。定数管理の工夫は、プロジェクトの規模が大きくなるほど効果が表れますので、小さなプログラムを書く段階から意識しておくと後々役に立つ場面が必ず出てきます。

先生と生徒の振り返り会話

生徒

「Pythonには定数がないって聞いて不安でしたけれど、実際にはいろいろな方法で管理できるんですね!」

先生

「そうですね。仕組みとして強制はできませんが、慣習や工夫を使えば十分に定数らしく扱えますよ。」

生徒

「モジュールに分けたり、大文字で書いたりするだけで意味がはっきりして、コードがすごく読みやすくなると感じました。」

先生

「その通りです。ほかの人が読んでも意味が伝わるというのは、とても大切なポイントなんです。」

生徒

「クラスを使って管理する方法も意外でした。いろいろな形があるんですね。」

先生

「状況に応じて使い分けると、より安全でメンテナンスもしやすいコードになりますよ。」

生徒

「次の開発では、定数をきちんと整理して使ってみます!」

先生

「素晴らしい心がけです。ぜひ実践してみてくださいね。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Pythonでは定数を定義するキーワードはありますか?

PythonにはJavaScriptやJavaのようなconstやfinalといった定数を定義するキーワードは存在しません。その代わり、定数として扱いたい変数にはすべて大文字で名前をつけるという慣習があります。

Pythonで定数を定義する場合、どのような書き方をすればよいですか?

Pythonでは、定数は大文字の変数名で定義します。たとえば、PIやMAX_USERSのように記述することで、「この値は定数として使いますよ」という意図を伝えることができます。

Pythonで大文字で書いた定数は変更できますか?

はい、Pythonでは大文字で書いた定数も技術的には再代入が可能です。定数の書き換えを禁止する仕組みはないため、開発者のモラルとチームのルールが重要になります。
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
Python のデータ型と変数の記事一覧へ
新着記事
New1
Python
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
New2
PHP
PHP の型変換を完全ガイド!初心者でもわかる明示的変換・自動変換
New3
PHP
PHPのCSVファイルの読み書きと文字列処理を基礎から解説!初心者向けガイド
New4
PHP
PHPのメモリ管理と変数の破棄方法をやさしく解説!初心者でもわかるunsetの使い方
人気記事
No.1
Java&Spring記事人気No1
Python
PythonでAPIリクエストを送信する方法を完全解説!requestsライブラリで簡単API通信
No.2
Java&Spring記事人気No2
Python
Pythonで経過時間を計測する方法を完全解説!初心者でもわかる time.perf_counter() と time.sleep()
No.3
Java&Spring記事人気No3
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.4
Java&Spring記事人気No4
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.5
Java&Spring記事人気No5
PHP
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!
No.6
Java&Spring記事人気No6
Python
Pythonのタプルの要素を変更できない理由とその回避策を初心者向けに解説
No.7
Java&Spring記事人気No7
ChatGPT
ChatGPTでPythonコードを作成する方法!プロンプトの書き方と質問例を解説
No.8
Java&Spring記事人気No8
Python
Pythonのrequestsライブラリ完全入門!HTTPリクエストの送り方を初心者向けにやさしく解説