HOWTO · Python

Python の関数、クラス、定数、および変数の命名規則

PEP 8に基づく分かりやすい例とともに、Pythonの関数、クラス、定数、変数の命名規則を学びます。

このページの内容

Pythonの命名規則に従うと、コードが読みやすくなり、保守もしやすくなります。PEP 8はPythonのスタイルガイドです。そこに示される慣例は指針であり、言語によって強制されるルールではありません。まずは一貫した基準として取り入れ、プロジェクトに別のスタイルが定着している場合はそれに従いましょう。詳しくはPEP 8の命名規則を参照してください。

関数の命名規則

関数名には、小文字の単語をアンダースコアでつなぐ形式を使います。この形式はsnake_caseと呼ばれます。たとえばcalculate_areaのように、処理内容が分かりやすく、ひと目で読み取れる名前を選びましょう。関数が何をするのか伝わる名前にします。

次の関数は、長方形の面積を計算して表示します。

def calculate_area(length, width):
    return length * width

area = calculate_area(5, 3)
print(area)

出力:

15

関数名には動詞が使われ、引数名は受け取る値を表しています。呼び出し時に長さ5、幅3を渡すため、戻り値の面積は15です。

Pythonの識別子では大文字と小文字が区別されるため、calculate_areaとCalculate_Areaは別の名前です。名前には文字、数字、アンダースコアを使えますが、数字から始めることはできません。関数本体や周囲のコードを見れば分かる情報まで名前に詰め込まず、読みやすさを保ちましょう。_parse_recordのように先頭にアンダースコアを1つ付けると、内部で使う名前であることを示せます。ただし、その名前が参照できなくなったり、非公開になったりするわけではありません。プロジェクトに別の慣例がある場合は、それに従ってください。

クラスの命名規則

クラス名にはCapWordsを使います。各単語の先頭を大文字にし、単語の間にアンダースコアは入れません。この形式は一般にPascalCaseとも呼ばれます。Carのようなクラス名は、関数名や変数名と区別しやすくなります。

class Car:
    def __init__(self, make, model):
        self.make = make
        self.model = model

my_car = Car("Toyota", "Corolla")
print(my_car.make, my_car.model)

出力:

Toyota Corolla

ここでは、Carがクラス名で、my_carは変数に使う小文字とアンダースコアの形式に従っています。初期化処理では、渡されたメーカー名とモデル名を新しいオブジェクトに保存します。

定数の命名規則

定数名には、大文字の単語をアンダースコアでつなぐ形式を使します。通常はモジュールレベルで定義します。たとえばMAX_RETRIESは、値を変えずに使う意図を示します。ただし、大文字表記はあくまで慣例です。名前が大文字でも、Pythonが値を変更できないようにするわけではありません。チーム内の合意と習慣によって、再代入を避けましょう。

PI = 3.14159

def calculate_circle_area(radius):
    return PI * (radius ** 2)

area = calculate_circle_area(5)
print(area)

出力:

78.53975

定数名から、その値の用途が分かります。関数はこの定数を使って、円の面積を計算します。

変数の命名規則

変数名にも、関数名と同じく小文字の単語をアンダースコアでつなぐ形式を使います。xのような曖昧な名前より、user_ageのように値を説明する名前を選びましょう。どの程度詳しくするかは、周囲のコードから分かる情報に応じて決めます。

user_age = 30
def display_age(age):
    print(f"The user is {age} years old.")

display_age(user_age)

出力:

The user is 30 years old.

user_ageは保存する値を説明しており、短い関数の引数としてはageで十分に意味が伝わります。名前に一貫性があると、プログラム内で値がどのように受け渡されるかを追いやすくなります。Pythonはこうした命名スタイルを強制しないため、慣例に一貫して従いながら、プロジェクトで使われているスタイルに合わせましょう。