これを利用すると、サブクラスの挙動を変更するクラスを書くことができます。このメソッドを定義したクラスの将来のサブクラスに適用されます。object.__init_subclass__(cls)¶このメソッドは、それが定義されたクラスが継承された際に必ず呼び出されます。は新しいサブクラスです。このメソッドがインスタンスメソッドとして定義されると、暗黙的にクラスメソッドに変換されます。デフォルト実装は何も行いませんが、何らかの引数とともに呼び出された場合は、エラーを送出します。実装に渡されることはありません。してアクセスできます。結果にローカルに束縛されます。クラス生成プロセスはカスタマイズできます。キーワード引数を渡すか、そのような引数を定義行に含む既存のクラスを継承します。passクラス定義の中で指定された他のキーワード引数は、後述するすべてのメタクラス操作に渡されます。エントリの解決が行われる;適切なメタクラスが決定される;クラスの名前空間が準備される;クラスの本体が実行される;クラスオブジェクトが作られる。メソッドが検索されます。メソッドが呼び出されます。このメソッドは、この基底の代わりに使われるクラスのタプルを返さなければなりません。このタプルは空であることもあり、そのような場合ではその基底は無視されます。メタクラスが使われます。明示的に指定されたメタクラスと、指定されたすべてのベースクラスのメタクラスから選ばれます。派生的なメタクラスは、これらのメタクラス候補のすべてのサブタイプであるようなものです。順序付きマッピングとして初期化されます。現在のスコープと外側のスコープから名前を参照できるという点です。クラス定義が関数内部で行われる時でさえ、クラス内部で定義されたメソッドはクラススコープで定義された名前を見ることはできません。参照からアクセスしなければなりません。渡されるものと同じです)。無引数形式によって参照されるものです。いずれかを参照している場合に、コンパイラによって作成される暗黙のクロージャー参照です。無引数形式がレキシカルスコープに基づいて定義されているクラスを正確に識別することを可能にします。エントリーとしてメタクラスに渡されます。呼び出しに到達するまで上に伝搬されます。フックが呼び出されます。クラスオブジェクトが渡され、デコレータが返すオブジェクトがここで定義されたクラスとしてローカルの名前空間に束縛されます。生成されたときは、名前空間引数として与えられたオブジェクトは新しい順序付きのマッピングに複製され、元のオブジェクトは破棄されます。メタクラスの用途¶メタクラスは限りない潜在的利用価値を持っています。自動デリゲーション、自動プロパティ生成、プロキシ、フレームワーク、そして自動リソースロック/同期といったものがあります。デフォルトの動作を上書きするのに利用します。型に追加するために、これらのメソッドを実装しています。実装のために呼び出されます。実装のために呼び出されます。実際のクラスにクラスメソッドとして定義することはできません。これは、インスタンスそれ自体がクラスであるこの場合にのみ、インスタンスに呼び出される特殊メソッドの検索と一貫しています。独自の動作をさせるための仕様の記述があります。ある型引数で特殊化されたジェネリッククラスを表すオブジェクトを返します。このメソッドはクラスオブジェクト自身から検索され、クラスの本体に定義されていたら、暗黙的にクラスメソッドになります。この機構は主に静的な型ヒントで使うために備わっているもので、それ以外での使用は推奨されません。短く書いたものになります。以上の整数で返さなければなりません。返すようなオブジェクトは、ブール演算コンテキストでは偽とみなされます。あることが要求されます。メソッドを定義していなければなりません。メソッドによって排他的に行われます。