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

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

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

作成日: 更新日:

基本的な使い方

RuntimeError.__init_subclass__メソッドは、PythonにおいてRuntimeErrorクラスが他のクラスによってサブクラス化される際に、新しく作成されるサブクラスに対して特定の初期化処理や追加の設定を実行するために用いられるメソッドです。このメソッドは、任意のクラスが継承され、新たなサブクラスが定義された直後に自動的に呼び出されるフックとして機能します。

具体的には、RuntimeErrorを継承して独自の例外クラスを定義する際など、サブクラスが生成された後にそのクラス自身に対して何らかの処理を行いたい場合に利用されます。例えば、新しく作成されたサブクラスを特定のレジストリに自動的に登録したり、共通の属性や振る舞いを設定したりするといった目的で活用できます。これにより、個々のサブクラスで同様のコードを繰り返し書く手間を省き、クラス作成時の処理を一元的に管理することが可能になります。

この__init_subclass__メソッドは、Pythonの全てのクラスの基底となるobjectクラスに定義されており、RuntimeErrorクラスもその標準的な振る舞いを継承しています。開発者がこのメソッドをオーバーライドしてカスタマイズする際には、親クラスの__init_subclass__メソッドも忘れずに呼び出すことが推奨されており、これによりPythonのオブジェクトモデルにおけるクラス作成の標準的な手順が適切に維持されます。

構文(syntax)

1class YourCustomError(RuntimeError):
2    @classmethod
3    def __init_subclass__(cls, /, **kwargs):
4        super().__init_subclass__(**kwargs)

引数(parameters)

cls, **kwargs

  • cls: metaclass: このクラス自体
  • **kwargs: dict: その他のキーワード引数

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ