変数名・関数名の付け方ルール|わかりやすい命名規則と具体例

プログラミングでは、変数名や関数名を適切に付けることが重要です。
「とりあえず a や data と付けてしまう」「関数名をどう付ければいいかわからない」というプログラミング初心者も多いでしょう。
変数名・関数名は、プログラムが動けば何でもいいわけではありません。何を表しているのか、何をする関数なのかが名前からわかるようにすることが、読みやすく保守しやすいプログラムにつながります。
この記事では、変数名・関数名の基本的な付け方から、Pythonでよく使われる命名規則、悪い命名・良い命名の具体例まで解説します。
変数名・関数名の命名が重要な理由
プログラムを書くとき、変数名や関数名は単なる「ラベル」だと考えてしまいがちです。
しかし、実際には命名はプログラムの読みやすさを大きく左右します。
例えば、次のコードを見てみましょう。
a = 100
b = 20
c = a * b
このコードだけでは、a、b、c が何を表しているのかわかりません。
一方、次のようにすると意味がわかりやすくなります。
price = 100
quantity = 20
total_price = price * quantity
priceは価格、quantityは数量、total_priceは合計金額だと推測できます。
つまり、適切な命名はプログラムそのものを説明する役割を持っています。
変数名・関数名の基本ルール
変数名や関数名を付けるときは、次のルールを意識しましょう。
- 名前から意味がわかるようにする
- 短すぎる名前を避ける
- 長すぎる名前も避ける
- 命名規則を統一する
- 英単語を基本にする
- 略語を使いすぎない
- 変数と関数で役割がわかる名前にする
名前から意味がわかるようにする
変数名は、その変数に何が入っているのかをできるだけ名前から判断できるようにします。
悪い例:
x = 1000
良い例:
price = 1000
さらに、「商品価格」であることを明確にしたい場合は、次のようにできます。
product_price = 1000
短すぎる名前を避ける
初心者がよく使うのが、a、b、x、y、dなどの短い名前です。
例えば、次のコードだけでは、dが何を意味するのかわかりません。
d = 30
次のようにすれば、日数を表していることがすぐにわかります。
days = 30
ただし、ループ処理などでは i や j が一般的に使われるケースもあります。
for i in range(10):
print(i)
このように、短い名前が必ず悪いわけではなく、用途に応じて使い分けることが重要です。
長すぎる名前も避ける
意味を明確にしようとして、変数名が極端に長くなるのも避けましょう。
例えば、次のような名前です。
number_of_registered_users_in_the_current_month
意味はわかりますが、コードが読みにくくなる可能性があります。
次のように、必要な情報を残しながら簡潔にする方法もあります。
monthly_users
変数名の付け方
変数名では、その変数が何を表しているのかを意識します。
例えば、ユーザー名なら次のようにします。
user_name = "Taro"
年齢なら、次のようにできます。
user_age = 30
メールアドレスなら、次のようになります。
email_address = "example@example.com"
データの種類を意識する
変数名を見るだけで、ある程度データの種類が推測できると便利です。
user_name = "Taro"
user_count = 100
is_active = True
このように命名すると、次のように意味を読み取りやすくなります。
user_name→ ユーザー名user_count→ ユーザー数is_active→ 有効かどうか
Pythonの変数名はスネークケースが基本
Pythonでは、変数名や関数名にスネークケース(snake_case)を使うのが一般的です。
複数の単語をアンダースコア(_)でつなぎます。
user_name
total_price
login_user
product_count
例えば、
userName
よりも、
user_name
のほうがPythonでは一般的です。
Pythonの標準的なコーディングスタイルでは、変数名や関数名などについて一定の命名規則が示されています。
関数名の付け方
関数名は、その関数が何をするのかがわかる動詞を含めるとわかりやすくなります。
例えば、ユーザー情報を取得する関数なら、
def get_user():
...
商品を登録する関数なら、
def create_product():
...
ユーザーを削除する関数なら、
def delete_user():
...
とします。
関数名には動作を表す言葉を使う
関数には「何かをする」という役割があります。
そのため、次のような動詞を使うと意味が伝わりやすくなります。
| 動詞 | 意味 | 例 |
|---|---|---|
| get | 取得する | get_user() |
| create | 作成する | create_user() |
| update | 更新する | update_user() |
| delete | 削除する | delete_user() |
| check | 確認する | check_status() |
| calculate | 計算する | calculate_total() |
| send | 送信する | send_email() |
悪い関数名と良い関数名の比較
例えば、ユーザー情報を取得する処理を、次のようにするのはおすすめできません。
def data():
...
data()という名前だけでは、何のデータを取得するのかわからないためです。
次のようにします。
def get_user():
...
さらに複数のユーザーを取得するのであれば、
def get_users():
...
とすると、処理内容がより明確になります。
変数名と関数名を混同しない
変数と関数では役割が異なるため、名前からも区別できるようにしましょう。
例えば、次のコードではユーザーのデータを変数に格納しています。
user = "Taro"
一方、次のコードはユーザーを取得する関数です。
def get_user():
...
Pythonでは、変数と関数の両方にスネークケースを使うため、関数には動詞を含めると区別しやすくなります。
命名規則を統一する
プログラム全体で命名ルールを統一することも重要です。
例えば、
user_name
user_age
user_address
と命名しているのに、
userEmailAddress
だけ別のルールにすると、コード全体が読みにくくなります。
Pythonなら、次のように統一しましょう。
user_name
user_age
user_address
user_email_address
「どの名前が正しいか」だけでなく、「プロジェクト内で一貫しているか」も重要です。
英語で変数名・関数名を付ける理由
プログラミングでは、変数名や関数名に英単語を使うのが一般的です。
例えば、次のような命名です。
customer_name
product_price
calculate_total()
日本語を使えるプログラミング言語もありますが、チーム開発やオープンソース開発では英語による命名が一般的です。
そのため、プログラミング初心者の段階から基本的な英単語を覚えておくと役立ちます。
略語を使いすぎない
変数名を短くするために、略語を多用するのもおすすめできません。
例えば、
usr_nm
prd_prc
よりも、
user_name
product_price
のほうが意味を理解しやすくなります。
ただし、id、url、apiなど、一般的に広く使われている略語は無理に長くする必要はありません。
Boolean型の変数名は「is」「has」「can」などを使う
TrueまたはFalseを格納するBoolean型の変数では、状態や条件がわかる名前にすると読みやすくなります。
例えば、次のような命名です。
is_logged_in = True
is_active = False
has_permission = True
can_edit = False
これにより、
if is_logged_in:
print("ログインしています")
のように、コードを自然な文章に近い形で読むことができます。
数字だけで変数名を区別しない
次のようなコードは、後から見たときに意味がわかりにくくなります。
data1 = ...
data2 = ...
data3 = ...
可能であれば、次のようにデータの内容を名前に含めましょう。
user_data = ...
product_data = ...
order_data = ...
定数の命名ルール
プログラムの中で変更しない値を定数として扱う場合、Pythonでは大文字とアンダースコアを使う命名が一般的です。
例えば、次のようにします。
MAX_RETRY_COUNT = 3
TAX_RATE = 0.1
DEFAULT_TIMEOUT = 30
変数と定数の命名を区別することで、「この値は基本的に変更しないものだ」と判断しやすくなります。
クラス名はどう付ける?
変数名・関数名とは異なり、Pythonのクラス名ではCapWords(PascalCase)が一般的です。
例えば、次のようにします。
class User:
pass
class ShoppingCart:
pass
class ProductManager:
pass
Pythonでは、次のような使い分けが基本です。
| 対象 | 基本的な命名規則 | 例 |
|---|---|---|
| 変数名 | snake_case | user_name |
| 関数名 | snake_case | get_user() |
| クラス名 | CapWords | UserManager |
| 定数 | UPPER_CASE | MAX_COUNT |
プログラミング初心者がやりがちな命名ミス
「とりあえずdata」にする
次のような変数名では、そのデータが何なのかわかりません。
data = get_user()
次のようにすると、意味が明確になります。
user_data = get_user()
一文字変数を大量に使う
次のようなコードは、処理が複雑になるほど読みにくくなります。
a = ...
b = ...
c = ...
d = ...
変数の役割がわかる名前を付けるようにしましょう。
命名ルールが途中で変わる
例えば、次のようにスネークケースとキャメルケースが混在すると、コード全体の統一感がなくなります。
user_name
user_age
userEmail
Pythonなら、次のように統一するのが基本です。
user_name
user_age
user_email
良い命名か迷ったときのチェックポイント
変数名や関数名を決めるときは、次の5点を確認してみましょう。
- 名前を見ただけで役割が推測できるか
- 短すぎる名前になっていないか
- 必要以上に長くなっていないか
- プロジェクトの命名規則と統一されているか
- 他の人がコードを読んでも意味を理解できるか
特に重要なのは、「自分が数日後に見ても意味がわかるか」という視点です。
変数名・関数名の付け方まとめ
変数名・関数名は、プログラムの読みやすさを左右する重要な要素です。
基本的には、次のルールを覚えておけばよいでしょう。
| 対象 | 基本的な命名 | 例 |
|---|---|---|
| 変数 | snake_case | user_name |
| 関数 | 動詞+snake_case | get_user() |
| Boolean型 | is / has / canなど | is_active |
| 定数 | 大文字+アンダースコア | MAX_COUNT |
| クラス | CapWords | UserManager |
最も大切なのは、「名前を見ただけで、その変数や関数の役割がわかること」です。
プログラミング初心者の場合、最初から完璧な命名を目指す必要はありません。まずは a や data のような曖昧な名前を減らし、user_name、total_price、get_user()など、意味が伝わる名前を付ける習慣を身につけましょう。
命名規則を身につけると、コードが読みやすくなるだけでなく、他人のコードを読んだり、AIにコードを書いてもらったりするときにも内容を理解しやすくなります。
よくある質問(FAQ)
変数名はどうやって決めればいいですか?
変数に格納するデータの意味が名前からわかるようにするのが基本です。Pythonでは、複数の単語をアンダースコアでつなぐsnake_caseが一般的です。例えば、ユーザー名なら user_name、商品価格なら product_price とします。
関数名はどうやって付ければいいですか?
関数が「何をするのか」がわかる動詞を含めるとよいでしょう。例えば、ユーザー情報を取得する関数なら get_user()、ユーザーを削除する関数なら delete_user() とします。
変数名に日本語を使ってもいいですか?
プログラミング言語によっては日本語の変数名を使用できます。ただし、チーム開発や他の開発者との共同作業を考えると、英語による命名が一般的です。特別な理由がなければ英単語を使うことをおすすめします。
変数名は短いほうがいいですか?
必ずしも短ければよいわけではありません。重要なのは、短さと意味のわかりやすさのバランスです。xやaのような名前より、user_countのように役割がわかる名前を使いましょう。
Pythonでは変数名と関数名にどんなルールがありますか?
Pythonでは、変数名や関数名にsnake_caseを使うのが一般的です。クラス名にはCapWords、定数には大文字とアンダースコアを使います。プロジェクト全体で命名規則を統一することも重要です。





