スネークケース?キャメルケース?Pythonでどちらを使えばいいの?
プログラミングの学習を始めると、最初にぶつかる意外な悩み。 それが、変数や関数の名付け(命名)に関するルールです。
例えば、ユーザーの名前を保存する変数を作るとき、user_name と書くべきでしょうか?
それとも、userName と書くべきなのでしょうか?
たかが名前の問題だと思われるかもしれませんが、実はここにはプログラミングの世界の深い作法が隠されています。 書き方を間違えると、他のエンジニアから「この人はPythonに慣れていないな」と思われてしまうこともあります。
この記事では、Pythonにおける命名規則の正解を、初心者の方にも分かりやすく徹底的に解説します。 エンジニア歴10年の私が、現場で見てきた良いコードと悪いコードの違いも交えてお伝えします!
そもそも「ケース」とは何のこと?¶
プログラミングの世界で「ケース(Case)」という言葉は、文字の書き方のスタイルを指します。 英語には大文字と小文字があるため、複数の単語を組み合わせる際にいくつかのパターンが生まれました。
私たちは普段、文章を書くときにはスペースを使って単語を区切ります。 しかし、プログラムの中では、変数名にスペースを入れることができません。
スペースを入れてしまうと、コンピュータが「どこまでが名前なのか」を判断できなくなってしまうからです。 そのため、単語の区切りを視覚的に分かりやすくするための工夫が必要になりました。
代表的なスタイルとして知られているのが、スネークケースとキャメルケースです。 まずは、それぞれの見た目の特徴を整理してみましょう。
代表的な命名スタイルの比較¶
| スタイル名 | 書き方のルール | 具体的な例 |
|---|---|---|
| スネークケース | すべて小文字で、単語をアンダースコア(_)で繋ぐ | user_login_count |
| キャメルケース | 単語の先頭を大文字にして繋ぐ(ラクダのコブのように見える) | UserLoginCount |
| ロワーキャメルケース | 先頭は小文字で、2つ目以降の単語の先頭を大文字にする | userLoginCount |
| ケバブケース | 単語をハイフン(-)で繋ぐ(Pythonでは変数名に使えない) | user-login-count |
スネークケースは、地面を這うヘビ(Snake)のように見えることからその名がつきました。 一方でキャメルケースは、大文字の部分がラクダ(Camel)の背中のコブのように盛り上がって見えるのが由来です。
これらのスタイルには、どれが正解でどれが間違いという絶対的な決まりはありません。 しかし、プログラミング言語ごとに「この言語ではこれを使う」という暗黙の了解が存在します。
Pythonの正解は「スネークケース」¶
結論からお伝えすると、Pythonで変数や関数の名前を付けるときは、スネークケースを使うのが標準です。 これは、Pythonの公式なスタイルガイドであるPEP 8(ペップ・エイト)で定められています。
PEP 8は、Pythonの生みの親であるグイド・ヴァンロッサム氏らがまとめた「Pythonらしいコードを書くためのバイブル」です。 世界中のPythonエンジニアが、このガイドに従ってコードを書いています。
なぜ、Pythonはスネークケースを選んだのでしょうか。 それは、他のスタイルに比べて圧倒的に読みやすいと考えられているからです。
アンダースコアで区切られた名前は、自然な文章に近いリズムで読むことができます。 逆に、キャメルケースが標準の言語(JavaやJavaScriptなど)から移ってきた方は、最初は違和感を覚えるかもしれませんね。
Pythonでの使い分けルール¶
実は、Pythonではすべての場所でスネークケースを使うわけではありません。 役割に応じて、使い分けるのが正しい作法です。
以下の表に、PEP 8が推奨する役割ごとのスタイルをまとめました。 これをマスターすれば、あなたのコードは一気に「プロっぽく」なります。
| 対象 | 推奨されるスタイル | 例 |
|---|---|---|
| 変数名 | スネークケース(小文字) | item_price, is_active |
| 関数名 | スネークケース(小文字) | get_user_data(), calculate_total() |
| クラス名 | キャメルケース(先頭大文字) | UserProfile, DatabaseConnection |
| 定数名 | スネークケース(すべて大文字) | MAX_RETRY_COUNT, API_KEY |
このように、種類によってスタイルを変えることで、コードを読んだ瞬間に「これはクラスだな」「これは定数だな」と判断できるようになります。 この視覚的なヒントが、プログラムの理解を助けてくれるのです。
# 変数と関数の例(スネークケース)
total_score = 100
def print_welcome_message():
print("Welcome!")
# クラスの例(キャメルケース)
class UserManager:
pass
# 定数の例(すべて大文字のスネークケース)
DEFAULT_TIMEOUT = 30
どうでしょうか。 役割ごとに見た目が違うので、コード全体が整理されて見えませんか。
【関連記事】綺麗なコードって何?初心者から一歩抜け出す「リーダブルコード」の3つの基本
なぜ「名付け」がそれほど重要なのか¶
エンジニアの間では、「プログラミングで最も難しいのは名前を付けることだ」というジョークがよく語られます。 これは単なる笑い話ではなく、現場で働くエンジニアの切実な本音でもあります。
エンジニア歴10年の私も、過去に自分が書いたコードを読み返して絶望したことが何度もあります。
data1 や temp_val といった適当な名前を付けてしまったせいで、1ヶ月後の自分がそのコードの意味を理解できなくなっていたのです。
名前が適切でないと、バグを探す時間が何倍にも膨れ上がります。 また、チームで開発している場合、あなたの書いた名前が他のメンバーを混乱させてしまうかもしれません。
良い名前を付けることは、未来の自分や仲間に対する最高のおもいやりです。 ここでは、私が現場で意識している「良い名前」の条件についてお話しします。
意味が伝わる名前を優先する¶
スネークケースを守ることは大切ですが、それ以上に「中身が何であるか」を正確に伝えることが重要です。
例えば、ユーザーのリストを保存する変数を l という1文字にするのは避けるべきです。
user_list や users といった名前にすれば、その変数に何が入っているか一目で分かりますよね。
短さよりも、分かりやすさを優先しましょう。
# 悪い例:何が入っているか分からない
a = 3600
b = "active"
# 良い例:意味が明確
seconds_per_hour = 3600
user_status = "active"
短いコードを書くのが格好いいと思われがちですが、現代のプログラミングでは「読みやすさ」こそが正義です。 丁寧すぎるくらいの名付けを心がけるのが、上達への近道ですよ。
キャメルケースを使うべき唯一の場面¶
先ほどのルール表で、クラス名にはキャメルケース(正式にはPascalCase)を使うとお伝えしました。 なぜ、クラスだけ仲間外れのように違うスタイルを使うのでしょうか。
それは、クラスが「設計図」という特別な存在だからです。 プログラムの中でクラスを呼び出してインスタンス(実体)を作るとき、変数とクラスが同じ見た目だと区別がつきにくくなってしまいます。
# もしクラスもスネークケースだったら...
my_tool = helper_tool() # これが関数なのかクラスなのか判別しづらい
# 正しいPythonのスタイル
my_tool = HelperTool() # 大文字で始まるので「クラスの呼び出しだ」とすぐ分かる
このように、見た目のコントラストをつけることで、プログラムの構造を直感的に理解できるようになっています。 「動詞っぽければスネークケース(関数)」「名詞の概念っぽければキャメルケース(クラス)」という感覚で覚えるのも良いでしょう。
【関連記事】Pythonの禅とは?「import this」に隠された秘密を徹底解説
チーム開発と「郷に入っては郷に従え」¶
ここまでPythonの標準ルールであるPEP 8について解説してきました。 しかし、実際の仕事の現場では、少し事情が異なる場合があります。
例えば、長年運用されているプロジェクトで、最初からすべての名前がキャメルケースで書かれていたとします。 そこにあなたが入って、一人だけ「PEP 8に従ってスネークケースで書きます!」と貫いたらどうなるでしょうか。
残念ながら、そのプロジェクトのコードはバラバラなスタイルが混在する、非常に読みづらいものになってしまいます。 エンジニアの世界には「郷に入っては郷に従え」という格言に近い考え方があります。
もし所属するチームやプロジェクトに独自の命名ルールがある場合は、その場のルールを優先するのがプロの立ち振る舞いです。 個人のこだわりよりも、プロジェクト全体の統一感を守ることの方が価値が高いからです。
もちろん、新しくプロジェクトを立ち上げる際や、個人的な学習のときには、自信を持ってスネークケースを採用してくださいね。
命名に迷ったときのAI活用術¶
2026年現在、私たちは名前を考えるときに一人で悩む必要はありません。 ChatGPTやGitHub CopilotといったAIツールが、あなたの代わりに「Pythonらしい名前」を提案してくれます。
例えばAIに対して、「ブログの記事の公開日を保存する、Pythonらしい変数名を5つ考えて」とお願いしてみましょう。
きっと、published_at や post_date といったスネークケースの候補を瞬時に出してくれるはずです。
ただし、AIの提案を鵜呑みにするのは危険です。 AIは時として、文脈に合わない名前や、古びたスタイルを提案することもあります。
最終的な決定権は、常にあなたにあります。 AIが出した候補の中から、この記事で学んだルールに照らし合わせて最適なものを選び抜いてください。
命名をAIに相談することで、語彙力が増え、英語の勉強にもなります。 こうしたツールを賢く使いこなすことも、これからのエンジニアに求められる大切なスキルです。
まとめ:Pythonらしいコードへの第一歩¶
命名規則という小さなルールですが、それを守ることは「Pythonというコミュニティの一員になること」と同義です。 最後に、今回学んだ大切なポイントを振り返ってみましょう。
- 変数や関数には、小文字のスネークケース(
user_name)を使う。 - クラスには、先頭大文字のキャメルケース(
UserClass)を使う。 - 定数には、すべて大文字のスネークケース(
MAX_VALUE)を使う。 - 名前は短さよりも、意味の伝わりやすさを重視する。
- 迷ったら公式ガイドのPEP 8に立ち返る。
最初はルールを覚えるのが大変に感じるかもしれませんが、意識してコードを書いていれば、数週間で体が覚えます。 指が勝手にアンダースコアを打つようになったら、あなたはもう立派なPython使いです。
美しい名前は、美しいプログラムの第一歩。 今日から、あなただけの「最高に読みやすいコード」を書き始めてみてください。
ここまでお読みいただきありがとうございました!