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

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

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

作成日: 更新日:

基本的な使い方

__init_subclass__メソッドは、Exceptionクラスのサブクラスが定義された直後に自動的に呼び出されるクラスメソッドです。このメソッドは、新しく定義されたサブクラスそのものを引数として受け取ります。

このメソッドをオーバーライドすることで、Exceptionを継承して新しいカスタム例外クラスが作成された際に、そのサブクラスに対して特定の初期化処理や検証、あるいは登録処理などを実行できます。例えば、全てのカスタム例外に共通の属性(エラーコードやログレベルなど)を自動的に設定したり、特定の命名規則に従っているかを確認したり、アプリケーション全体で管理する例外レジストリにその例外クラスを自動的に登録したりといった用途で利用されます。

__init_subclass__は、クラスのインスタンスが生成される前、つまり__init__メソッドが呼び出されるよりも前の、クラス自体が定義されるタイミングで実行されます。これにより、Exceptionを継承する複数のカスタム例外クラスに対して、共通の振る舞いや設定を、各サブクラスで重複して記述することなく、基底クラスで一元的に管理することが可能になります。この機能は、大規模なアプリケーションで多数のカスタム例外を効率的に管理する際に特に有用です。

構文(syntax)

1class CustomException(Exception):
2    def __init_subclass__(cls, **kwargs):
3        super().__init_subclass__(**kwargs)

引数(parameters)

cls: type, **kwargs: Any

  • cls: type: このメソッドが呼び出されたサブクラス自身を表す型オブジェクト
  • **kwargs: Any: サブクラスの初期化に使用される追加のキーワード引数

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ