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

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

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

作成日: 更新日:

基本的な使い方

__init_subclass__メソッドは、クラスが別のクラスによってサブクラス化(継承)された際に、その新しいサブクラスが作成される直前に自動的に実行される特殊メソッドです。これはSystemExitのような基底クラスが継承され、新しいサブクラスの作成直前に特定の処理を行うことを可能にします。

主な役割は、生成されるサブクラスが特定の規約を満たしているか検証したり、すべてのサブクラスに共通の属性やメソッドを自動的に付与することです。例えば、SystemExitを継承して独自の終了例外クラスを作成する際に、そのカスタム例外が持つべき共通の設定を自動的に適用するといった利用法があります。

このメソッドは、新しく作成されるサブクラス自身を引数として受け取るため、メソッド内でサブクラスに対し直接アクセスし、必要なチェックや設定変更をプログラム的に実行できます。これはクラス継承を柔軟に制御し、サブクラスの振る舞いを一貫して管理するための強力な手段です。

構文(syntax)

1class MyCustomSystemExit(SystemExit):
2    def __init_subclass__(cls, **kwargs):
3        super().__init_subclass__(**kwargs)
4        # このメソッドは、MyCustomSystemExitを継承する新しいサブクラスが定義されたときに自動的に呼び出されます。
5        # 'cls' 引数には、新しく定義されたサブクラス自体が渡されます。
6        # '**kwargs' 引数には、サブクラス定義時にクラスキーワード引数として渡された値が格納されます。

引数(parameters)

cls: type

  • cls: type: このメソッドが呼ばれたクラス自身

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ