Pythonの「名前付け」で失敗しない!予約語と命名ルールの基本(チェックコード付き)

【作業自動化】Python
スポンサーリンク

プログラミングを始めたばかりの頃、最初にぶつかりやすい壁のひとつが「変数名(データの入れ物の名前)」の付け方ではないでしょうか?

  • 「classという名前にしたらエラーが出た…」 
  • 「printを変数名に設定したら、画面に出力できなくなった…」 

こんな経験はありませんか?

今回は、あらかじめ把握しておくだけでエラーの不安を解消できる、名前付けの基本ルールをわかりやすくご紹介します。 

【作業自動化】Pythonの記事を見る 

そもそも「予約語」とは?

予約語とは、Pythonのシステム側があらかじめ「特別な用途のために確保しているため、自由には使えない」と定めているキーワードのことです。 

会社組織で例えると「社長」や「部長」といった役職名に似ています。新入社員が自身のネームプレートに勝手に「社長」と記載できないのと同様に、言語仕様上特別な意味を持つ単語は、変数名として使用できません。 

現在、Pythonの予約語は約35個あります。でも覚える必要はありません。

Python自身にコマンドで問い合わせることで、いつでも一覧を確認できます。無理に覚えるのではなく、必要な場面で確認するスタンスで問題ありません。

以下のコードをコピーして、Pythonで実行してみてください。

import keyword

# 予約語の一覧を表示する
print(keyword.kwlist)

# 予約語の数を確認する
print(f"現在の予約語の数は {len(keyword.kwlist)} 個です。")

これ実行すると、[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, …] といったリストが表示されます。これらが「変数名として指定できない単語の一覧」となります。

特に次の5つは頻繁に登場しますので、「Python専用の役割がある単語」として頭の片隅に置いておくと役立ちます。

  • if (もし〜なら)
  • for (繰り返し)
  • def (関数の定義)
  • return (戻り値)
  • class (クラスの定義)

可読性を高める「命名規則」の基本

予約語を避ければどのような名前でもよいかというと、実際にはコードを読みやすくするためのマナーが存在します。これを「命名規則」と呼びます。

ビジネス文書でも「日付_書類名.xlsx」といった統一ルールを設けることで管理が容易になるのと同様に、命名規則を守ることで、第三者だけでなく将来の自分自身にとっても読みやすいコードになります。

初心者が押さえておきたい要点は次の2点です。

① 変数や関数は「スネークケース」を用いる 

すべて小文字で書き、単語の間をアンダースコア( _ )で繋ぐ方法です。ヘビが地を這うように見えるのでこう呼ばれます。

  • 🙆‍♀️ OK例:user_name、sales_data、total_price
  • 🙅‍♀️ NG例:UserName(キャメルケース)、user-name(ハイフンは減算記号と判定されます) 

② 具体的でわかりやすい英単語を選ぶ 

単一文字(aやbなど)による曖昧な名前付けは、後からコードを見返した際に意図が分からなくなる原因になります。

  • 🙆‍♀️ OK例:price = 1000 (価格データであることが明確) 
  • 🙅‍♀️ NG例:kazu = 1000 (ローマ字表記は避け、英語単語を選択します) 

コピペで確認できる名前チェックツール

「この名前を使用しても問題ないか」を確認したい場合は、以下の簡易スクリプトを活用してみてください。

import keyword

def check_name(name):
    """
    指定した文字列が変数名として適切かを検証する関数
    """
    # 1. 予約語かどうかチェック
    if keyword.iskeyword(name):
        return f"NG: '{name}' は予約語のため使用できません。"

    # 2. 識別子として正しいかチェック(数字始まりや記号の有無など)
    if not name.isidentifier():
        return f"NG: '{name}' は変数名の規則に違反しています(記号や数字始まりなど)。"

    # 3. すべてクリアした場合
    return f"OK: '{name}' は変数名として問題なく利用できます。"

# --- 動作確認 ---
print(check_name("class"))       # 予約語
print(check_name("1st_place"))   # 数字始まり
print(check_name("user_name"))   # OK
print(check_name("sales-data"))  # ハイフン使用のためNG

予約語ではないけれど要注意!「組み込み関数」の上書き問題 

序盤に触れた「print を変数名に設定したら、画面に出力できなくなった…」というトラブル。
実はこれ、厳密には「予約語のエラー」とは少し仕組みが異なります。

printやstr、listなどは予約語ではなく、Pythonに最初から用意されている便利な「組み込み関数」と呼ばれるものです。

そのため、Pythonは以下のようなコードを書いても構文エラーを出さずに受け入れてしまいます。

# 組み込み関数名を変数名にしてしまう(NG例)
print = "こんにちは"

# 本来の出力機能を呼び出そうとすると…
print("画面に出したい文字")
# ➡ TypeError: 'str' object is not callable というエラーが発生!

なぜ動かなくなるのか?

これは、本来「文字を画面に表示する役割」を持っていたprintというラベルを、「ただの文字列」で上書き(シャドーイング)してしまったために起こります。

予約語のように「システムが即座にエラーで止めてくれる」わけではないため、初心者が原因を見落としやすい典型的な落とし穴のひとつです。

そのため、「組み込み関数と同じ名前を変数名に使わない」ことが一番の防御策です。 

エディタ上で色が変わる単語や、広く知られた組み込み名(print, input, type, id など)は、変数名に選ばないよう意識しておきましょう。

さいごに

プログラミングは、間違えることも作業の一部です。発生したエラーメッセージを手がかりに修正していけばいいだけです。

適切な命名ルールを身につけることで、構文上のつまずきを未然に防ぐことができます。 

まずは、user_nameのように「小文字とアンダースコア」を使うことから始めてみましょう!

【作業自動化】Pythonの記事を見る 


Pythonの本は種類が多すぎて、業務効率化に使えるのか見分けるのが大変ですよね。実務自動化に5年以上携わってきた私が、「デスクワークの自動化に即戦力になった本」を厳選して紹介します。失敗しない1冊を見つけたい方は、ぜひ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でしたが、年間100万円以上節約していました。
株式投資で年間360万円以上投資し、iDeCoも併用しています。
総資産はアッパーマス層に到達しました。
資格は日商簿記3級を持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、生産性を高めるITスキルについて発信しています。

生活を豊かにするため、高配当株投資で年間配当金60万円をめざしています。
現在の年間配当金は30万円ほどです。

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【作業自動化】PythonITスキル
スポンサーリンク
ぐーをフォローする

コメント

タイトルとURLをコピーしました