Python の変数名には、構文的なルールと**スタイル上のルール(PEP8)**の2種類があります。以下にわかりやすくまとめます!
目次
✅ 構文的ルール(Pythonの文法として必須)
- ❗先頭は数字にできない
- 英字(A〜Z, a〜z)、数字(0〜9)、アンダースコア(_)が使用可能
- ✅ 例:
user1
,_temp
,data_list
- ❌ NG:
1user
,@name
- ✅ 例:
- Pythonのキーワード(予約語)は使えない
- ❌ 例:
class
,def
,for
,if
,True
,None
など
- ❌ 例:
- 大文字と小文字は区別される(case-sensitive)
user
,User
,USER
はすべて別の変数
✏️ スタイル上のルール(PEP8:Python公式スタイルガイド)
🐍 通常の変数名
- 小文字+必要ならアンダースコア:
snake_case
- ✅ 例:
user_name
,total_score
,max_value
📦 クラス名
- 単語の先頭を大文字に:
PascalCase
- ✅ 例:
UserProfile
,ImageProcessor
🔒 特殊な変数名
用途 | 例 | 説明 |
---|---|---|
プライベート変数 | _variable | 慣習上「内部用」扱い |
強制名前変更(ネームマングリング) | __variable | クラス外からアクセスしづらくなる |
特殊変数 | __init__ , __str__ | Pythonが予約した「マジックメソッド」 |
🚫 避けるべき命名例
変数名 | 問題点 |
---|---|
l , O , I | 数字と間違いやすい (1 , 0 ) |
data , info | 意味があいまいすぎる |
camelCase | Java風。Pythonでは推奨されない(snake_caseが標準) |
💡おすすめ命名パターン(参考)
意図 | 命名例 |
---|---|
カウント | count , num_users |
フラグ | is_active , has_error |
一時変数 | temp , buffer (短いスコープならOK) |
必要であれば、「良い変数名と悪い変数名の例」一覧や、既存コードの変数名レビューもできますよ!