Pythonの命名規則(PEP-8)のまとめと一覧表を解説します。
命名規則とは
命名規則とは、コードを書くときの 変数名や関数名の付け方のルール です。 「ネーミング規則」「命名規約」などとも呼ばれます。
命名規則に沿ってコードを書くことで、
- 読みやすい
- 理解しやすい
- チーム開発で統一感が出る
といったメリットがあります。
Pythonでは PEP-8 と呼ばれる標準のコーディング規約があり、命名規則もそこで定義されています。
主な命名規則(PEP-8)
PEP-8で定義されている主な命名規則は以下のとおりです。
種類 | 規則 | 記述例 |
---|---|---|
関数名・変数名・メソッド名・モジュール名・パッケージ名 | 小文字+アンダースコア(スネークケース) | my_function , my_var , my_package |
インスタンス変数名 | self. を付け、小文字+アンダースコア |
self.my_var |
定数名 | 大文字+アンダースコア | MY_CONSTANT |
クラス名・例外名 | パスカルケース。例外は Error で終わる |
MyClass , ValueError |
プライベート変数・メソッド | 先頭に _ を付ける |
_internal_var , _helper() |
特殊メソッド | 両端に __ を付ける(ダンダー) |
__init__ , __str__ |
行の長さ | 1行は 79文字以内(コメントやdocstringは72文字以内が推奨) | 長い式はバックスラッシュや括弧で折り返す |
インデント | スペース4つを使用(タブは使わない) | if True:\n print("OK") |
空行 | トップレベルの関数・クラス定義の前後に2行、クラス内メソッドの前に1行 | |
インポート | ファイル冒頭にまとめる。標準ライブラリ→サードパーティ→自作の順。1行に1モジュール。 | import os \nimport sys |
空白の使い方 | 演算子の前後にスペースを入れる。ただし括弧の直後や直前には入れない。 | x = a + b (◯)、x=a+b (△) |
文字列 | ' と " はどちらでも良いが、プロジェクト内で統一する |
"Hello" または 'Hello' |
コメント | 完結で分かりやすく。文のように書き、必要なら句読点を使う | # この関数はHPを回復する |
docstring | モジュール・クラス・関数には三重引用符で説明を書く | """この関数はHPを回復する。""" |
比較 | == を使う。is は同一性比較にのみ使用 |
if x == 0: (◯)、if x is 0: (×) |
真偽値 | if x: や if not x: を使う。== True や == False は避ける |
if items: |
サンプルコード
以下は、命名規則(PEP-8)に従ってコードを書いた例です。
# 定数はすべて大文字+アンダースコア(PEP-8推奨)
MAX_HP = 100
# 関数名は小文字+アンダースコア(スネークケース)
def calculate_damage(power, defense):
return max(0, power - defense)
# クラス名は単語ごとに大文字(パスカルケース)
class Hero:
# インスタンス変数は self. を付け、小文字+アンダースコア
def __init__(self, name):
self.name = name # self.name → インスタンス変数(小文字+アンダースコア)
self.hp = MAX_HP # 定数 MAX_HP を利用
# メソッド名も小文字+アンダースコア
def attack(self, enemy):
print(f"{self.name} は {enemy} を攻撃した!")
# 例外クラスはクラス名と同じ規則(パスカルケース)、慣例として Error で終わる
class HeroError(Exception):
pass
hero = Hero("勇者ぴこり") # クラス名はパスカルケース
hero.attack("スライム") # メソッド名はスネークケース
関連ページ(もっと学びたい人へ)
Pythonの基礎から応用例まで、以下ページから学ぶことができます。

【Python超入門】基礎から応用例まで幅広く解説
PythonについてPythonは、統計処理や機械学習、ディープラーニングといった数値計算分野を中心に幅広い用途で利用されているプログラミング言語です。他のプログラミング言語と比較して「コードが短くて読みやすい、書きやすい」「ライブラリが豊...
コメント
定数名は「全て大文字」だと、My_CONSTANTはMY_CONSTANTでは?
※匿名様
いつもコメントありがとうございます。
誤記を修正いたしました。
My_Class ではなく MyClass です
※匿名様
ご指摘ありがとうございます。
2個目の表にMy_CONSTANTが残ってますね。
※匿名様
コメントありがとうございます。
該当箇所を修正しました。