【Python】クラス名の命名規則
- PEP 8に基づくクラス名の命名規則
- PascalCase(アッパーキャメルケース)の使用
- 特殊なクラス名の規則
- 抽象クラスの命名規則
- インターフェースの命名規則
- 例外クラスの命名規則
- 内部クラスの命名規則
- メタクラスの命名規則
- クラス名のプレフィックス・サフィックスの活用
- クラス変数とインスタンス変数の命名規則
- 命名時の注意点
PEP 8に基づくクラス名の命名規則
Pythonでは、公式のコーディング規約であるPEP 8に従うことが推奨されています。PEP 8では、クラス名は「CapWords(PascalCase)」とするよう推奨されています。
class MyClass:
pass
class DataProcessor:
pass
この規則により、クラス名は単語の先頭を大文字にし、単語の間にアンダースコア(_)を使用しません。
PascalCase(アッパーキャメルケース)の使用
Pythonのクラス名は一般的にPascalCase(UpperCamelCaseとも呼ばれる)を使用します。これは、各単語の先頭を大文字にし、それ以外の文字を小文字にする形式です。
class UserAccount:
pass
class FileHandler:
pass
クラス名に複数の単語を含める場合、アンダースコアを使わずに単語を連結します。
特殊なクラス名の規則
Pythonには特殊なクラス(ダンダーメソッドを持つクラス)があります。これらは通常、予約語と衝突しないように慎重に命名されます。
class _InternalClass:
pass
このように、アンダースコア(_)をクラス名の先頭につけることで、「内部で使用するクラス」という意味を持たせることができます。
抽象クラスの命名規則
抽象クラスは通常、他のクラスに継承されることを前提とした設計になっています。そのため、名前の末尾に「Base」や「Abstract」を付けることが一般的です。
from abc import ABC, abstractmethod
class BaseModel(ABC):
@abstractmethod
def process(self):
pass
この命名規則により、抽象クラスであることが明確になります。
インターフェースの命名規則
Pythonでは明示的なインターフェースはありませんが、インターフェース的なクラスを作成する場合は「I」を接頭辞とすることがあります。
class IDataProcessor:
def process(self):
pass
このような命名は、インターフェースであることを明示するのに役立ちます。
例外クラスの命名規則
例外クラスの命名には「Error」を末尾につけるのが一般的です。
class FileNotFoundError(Exception):
pass
class DataValidationError(Exception):
pass
このように命名することで、例外クラスであることがすぐに分かります。
内部クラスの命名規則
Pythonではクラス内に定義される内部クラスもあります。内部クラスの命名は通常、親クラスの命名規則を踏襲します。
class OuterClass:
class InnerClass:
pass
内部クラスもPascalCaseを使用するのが一般的です。
メタクラスの命名規則
メタクラスは通常、名前の末尾に「Meta」をつけます。
class MyMeta(type):
pass
この規則により、メタクラスであることが一目で分かります。
クラス名のプレフィックス・サフィックスの活用
プレフィックスやサフィックスを活用することで、クラスの用途を明示的にすることができます。
- 「Base」: 抽象クラス
- 「I」: インターフェース
- 「Error」: 例外クラス
- 「Meta」: メタクラス
クラス変数とインスタンス変数の命名規則
クラス変数は通常、大文字で記述します。
class Config:
DEFAULT_VALUE = 10
インスタンス変数は通常、小文字のスネークケースを使用します。
class User:
def __init__(self, name):
self.name = name
命名時の注意点
クラス名をつける際の注意点として、以下の点を考慮するとよいでしょう。
- 予約語と重複しないようにする
- 適切なプレフィックス・サフィックスをつける
- 一貫したスタイルを保つ
適切な命名規則を守ることで、可読性と保守性が向上します。