Python は、解決されるまで、メソッドのクラスとそのクラスのすべての親クラスでメソッド名を解決します。
これはコンストラクターにも適用されますか。つまり、クラスが定義していない__init__()
が、その親が定義している場合、親コンストラクターは自動的に呼び出されますか?
短い答えは:はい. これが継承の仕組みです。
これは、子クラス内のメソッドをオーバーライドするときに、ほとんどの場合 (何らかの理由で別の方法で行いたい場合を除き)、親コンストラクターを明示的に呼び出す必要がある理由でもあります。
Python でのメソッド解決順序:新しいスタイルの Python クラスでのメソッド解決順序 (MRO)についても学ぶ価値があります。メソッドが解決される順序を定義します (多重継承の場合は特に重要です)。