🐍 「読みやすいコード」は変数名で決まる
「動くコード」と「美しいコード」の差はどこにあるか——答えのひとつが命名のセンスです。✨
変数名や関数名に気を遣わないコードは、半年後の自分でも解読不能になります。逆に、命名規則を守って意味のある名前をつけていると、3か月後にコードを開いても「ああ、これは○○を処理する関数だな」と一瞬で理解できる。チーム開発になればその差はさらに大きくなります。今日からあなたのコードを「すぐ読める・すぐ修正できる」状態にしていきましょう。📈
📘 命名規則とは:書き方の「お作法」
命名規則とは、変数名や関数名をつけるときのルールのこと。Pythonには公式のコーディングガイドライン PEP 8 があり、その中で命名規則が定められています。📜
所属しているチームやプロジェクトに独自の命名規則がある場合は、そちらを優先してください。ない場合はPEP 8に従うのが世界共通のスタンダードです。🌍
🐍 PEP8の命名規則:5つのパターンを使い分ける
1. 変数名・関数名・メソッド名 → snake_case(スネークケース)
小文字+アンダースコアで単語をつなぐ書き方。Pythonでもっとも使う基本形です。
# 変数名
user_name = "山田"
file_path = "/data/sample.csv"
# 関数名・メソッド名
def update_password():
pass
def calculate_total_price(items):
pass
単語が1つだけのときはアンダースコアは不要。address や name のように小文字だけで書きます。👌
2. 定数名 → UPPER_SNAKE_CASE(大文字+アンダースコア)
定数とは一度決めたら後から変更しない値のこと。すべて大文字+アンダースコアで書きます。
MAX_RETRY_COUNT = 3
DEFAULT_FILE_NAME = "output.txt"
API_BASE_URL = "https://api.example.com"
大文字で書かれているだけで「これは変更しない値なんだな」と読み手に伝わります。📌
3. クラス名 → CapWords(キャメルケース)
各単語の先頭を大文字にしてつなげる書き方。「PascalCase」とも呼ばれます。
class UserAccount:
pass
class FileReader:
pass
class HTTPResponse:
pass
クラスはオブジェクトの「型」を表すので、変数や関数とは見た目で区別しやすいよう大文字始まりにします。🏛️
4. モジュール名(ファイル名) → snake_case
Pythonスクリプトのファイル名もスネークケースが推奨です。
relation_setting.py
user_authentication.py
data_processor.py
命名規則まとめ
- 📌 変数・関数・メソッド・モジュール:
snake_case - 📌 定数:
UPPER_SNAKE_CASE - 📌 クラス:
CapWords(キャメルケース)
🎯 良い変数名・関数名をつける4つのコツ
1. 意味を持たない変数名をつけない
x や y、function のような意味のない名前は、後から読むときに大混乱の原因になります。😵
# ❌ 悪い例
def function(x, y):
return x + y + "さん"
# ⭕ 良い例
def get_full_name_with_honorific(family_name, given_name):
return family_name + given_name + "さん"
名前を見ただけで「何をする処理か」「何が入っているか」が分かるようにしましょう。✨
ただし例外もあります。for文の中だけで使うインデックス(例:for i in range(10):)はi・j・kでもOK。スコープが狭く、文脈で意味が明らかな場合は短い名前でも問題ありません。📝
2. 対義語・反対語を正しく使う
日本語ネイティブだと意外と間違えやすいのが英語の対義語。ペアになる単語を間違って覚えていると、コードに違和感が残ります。
- 📌 start ⇔ stop(finishじゃない)
- 📌 push ⇔ pop(downじゃない)
- 📌 open ⇔ close
- 📌 begin ⇔ end
- 📌 first ⇔ last
- 📌 min ⇔ max
- 📌 get ⇔ set
「start の反対は finish じゃなくて stop」「push の反対は down じゃなくて pop」——プロのコードでよく出てくる組み合わせなので、頭に入れておきましょう。🧠
3. bool型の変数名は「True/False の意味」が明確にわかるように
真偽値(bool型)の変数名で、どちらがTrueなのか分かりにくい名前をつけてしまうケースがあります。
# ❌ 悪い例
student = True # 学生なのか? それとも別の意味?
# ⭕ 良い例
is_student = True # Trueなら学生、Falseなら学生じゃない
has_card = False # Trueならカードを持っている
can_login = True # Trueならログインできる
bool型の命名には次のような定番パターンがあります。
- 📌 is_+名詞 / 形容詞:「○○である」
is_student/is_valid/is_empty - 📌 has_+名詞:「○○を持っている」
has_card/has_permission - 📌 can_+動詞:「○○できる」
can_login/can_edit
このパターンに従うだけで、コードがぐっと英語の文章のように自然に読めます。📖
4. システムハンガリアン記法はむやみに使わない
システムハンガリアン記法とは、変数名の頭や末尾に型情報をつける書き方のことです。
# システムハンガリアン記法の例
str_user_name = "山田" # 文字列だから str_ をつけた
i_error_code = 404 # 整数だから i_ をつけた
Pythonは動的型付け言語なので、後から型が変わる可能性があります。型が変わるたびに変数名を全部直さなければならず、メンテナンスが大変です。⚠️
さらに、この記法に慣れていない人にとっては可読性が下がるだけ。原則として使わない方が無難です。
例外として、str()・int()・float()のような型変換関数や、明確に型を表現したい場面では使ってOKです。🎯
💡 命名のセンスは「プログラミングスキルの差」が出る場所
「変数名なんかで悩む時間が勿体ない」と思うかもしれませんが、実は良い変数名をスパッと決められる能力は、かなりハイレベルなスキルです。プログラミングが上達するほど、命名にかける時間と注意は増えていきます。
一つひとつの変数名を丁寧に選ぶ習慣をつければ、それだけで「コードの書ける人」として一歩抜き出る存在になれます。逆に言えば、命名が雑なままだと、いつまでも初心者っぽいコードから抜け出せません。🎓
📚 「プロのコード」を書くために役立つ厳選書籍&ツール
命名規則は知っているだけでなく、良い名前を選ぶセンスも磨いていきたいもの。手元に良書を置いておくと、毎日のコーディングの質が確実に上がります。
📖 まずは体系的に:『スッキリわかるPython入門』
Pythonの基本文法から命名規則まで、初学者が知っておくべきことを丁寧に解説。「なぜこう書くのか」が腹落ちする定番書。
💼 仕事レベルへ:『独学プログラマー』
文法だけでなく、エンジニアとしての書き方やコードの整え方まで学べる人気書。命名規則の重要性が自然に身につきます。
🚀 「良いコード」への90の指針:『Effective Python 第2版』
命名はもちろん、Pythonコミュニティで推奨される書き方が90項目に凝縮。中級者必読のバイブル。
🛡️ 保守しやすいコードへ:『ロバストPython』
命名・型ヒント・設計など、長期保守に耐えるPythonコードの書き方が学べる実践的な1冊。
⌨️ 命名で悩む時間を支える相棒キーボード
良い変数名をひねり出すには、思考しながらタイピングできる快適な環境が必須。打鍵感が良く複数デバイス切替対応のキーボードがあると、長時間のコーディングが驚くほど捗ります。
❓ よくある質問(FAQ)
🤔 Q1. 変数名に日本語を使ってもいい?
Python 3 では文法的には可能ですが、非推奨です。多くのコードや書籍は英語の変数名を前提に書かれており、チーム開発では混乱の元になります。英単語で命名する習慣をつけましょう。🌍
🤔 Q2. PEP8に違反するとエラーになる?
いいえ、PEP8は推奨スタイルガイドであり、違反してもコードは動きます。ただし、flake8 や black といったツールでチェック・整形できるので、自動化しておくのが現代の流儀です。🛠️
🤔 Q3. プライベート変数の慣習は?
クラス内部だけで使う変数や関数には、先頭にアンダースコア1つをつけます(例:_internal_value)。これは「外から触らないでね」というメッセージ。__(アンダースコア2つ)はネームマングリングで、より強い意図を示します。🔒
🤔 Q4. 略語は使っていい?
業界で一般的な略語(url・id・db・http など)はOK。ただし独自の略語や分かりにくい省略は避けましょう。usr_nm より user_name のほうが読みやすいですよね。✂️
🤔 Q5. 変数名が長くなりすぎるのはダメ?
長さよりも意味の明確さを優先しましょう。20文字くらいまでなら気にする必要はありません。ただし get_total_price_including_tax_with_discount のように長すぎると逆に読みにくいので、「説明的かつ簡潔」のバランスを目指します。⚖️
🎯 まとめ:命名は「未来の自分への手紙」
Pythonの命名規則をまとめると——
- 📌 変数・関数・メソッド・モジュールはスネークケース
- 📌 定数は大文字+アンダースコア
- 📌 クラスはキャメルケース
- 📌 意味のない名前は避ける(forループのiは例外)
- 📌 対義語は正しく使う(start⇔stop、push⇔pop)
- 📌 bool型は is_/has_/can_ パターンで書く
- 📌 システムハンガリアン記法はむやみに使わない
命名規則はルールなので、覚えれば誰でも守れます。でも、それを毎日のコードに丁寧に適用していく姿勢こそが、プログラマーとしての成長を支える土台。「未来の自分が読みやすいコード」を意識して、一つひとつの名前に心を込めていきましょう。🚀
今日からの一行が、半年後・一年後のあなたのコードを救います。変数名一つで、あなたのプログラミング人生は確実に変わり始めます。💪




































コメント