Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Python3.x】AttributeError::__init_subclass__()メソッドの使い方

__init_subclass__メソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

__init_subclass__メソッドは、クラスがサブクラス化されたときに自動的に呼び出される特殊なメソッドです。

Pythonのプログラムにおいて、ある既存のクラス(親クラス)を継承して新しいクラス(サブクラス)を定義する際、そのサブクラスが作成された直後に、親クラスに定義されたこのメソッドが自動的に実行されます。このメソッドの主な役割は、新しく誕生するサブクラスに対して、特定の初期設定を施したり、サブクラスが満たすべき条件を検証したりすることにあります。例えば、すべてのサブクラスに特定の共通属性を持たせる、特定のメソッドの実装を義務付ける、あるいはサブクラスが定義されるたびにそのサブクラスを特定のリストに自動的に登録するといった処理を行うことが可能です。

AttributeErrorクラスに属するこの__init_subclass__メソッドは、AttributeErrorを基底クラスとして、独自のカスタム例外クラスを作成する際に利用されることがあります。これにより、AttributeErrorを継承して作られたすべてのカスタム例外クラスに対して、一貫した動作や共通の特性を自動的に付与し、例外処理の体系的な管理を支援することができます。この機能は、フレームワークやライブラリを設計する際に、ユーザーが定義するサブクラスが特定のルールに従うことを保証するための強力なメカニズムとして活用されます。

構文(syntax)

1@classmethod
2def __init_subclass__(cls, /, **kwargs):
3    pass

引数(parameters)

cls: type, **kwargs: Any

  • cls: type: このメソッドを呼び出したクラス自身
  • **kwargs: Any: その他のキーワード引数

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ