私は次の基本クラスを持っています:
class NeuralNetworkBase:
def __init__(self, numberOfInputs, numberOfHiddenNeurons, numberOfOutputs):
self.inputLayer = numpy.zeros(shape = (numberOfInputs))
self.hiddenLayer = numpy.zeros(shape = (numberOfHiddenNeurons))
self.outputLayer = numpy.zeros(shape = (numberOfOutputs))
self.hiddenLayerWeights = numpy.zeros(shape = (numberOfInputs, numberOfHiddenNeurons))
self.outputLayerWeights = numpy.zeros(shape = (numberOfHiddenNeurons, numberOfOutputs))
これで、次のコードを持つ派生クラスができました。
class NeuralNetworkBackPropagation(NeuralNetworkBase):
def __init__(self, numberOfInputs, numberOfHiddenNeurons, numberOfOutputs):
self.outputLayerDeltas = numpy.zeros(shape = (numberOfOutputs))
self.hiddenLayerDeltas = numpy.zeros(shape = (numberOfHiddenNeurons))
しかし、NeuralNetworkBackPropagationをインスタンス化するときに、両方のコンストラクターが呼び出されるようにしたいのです。つまり、基本クラスのコンストラクターをオーバーライドしたくありません。派生クラスのコンストラクターを実行するときに、Pythonはデフォルトで基本クラスのコンストラクターを呼び出しますか?派生クラスのコンストラクター内で暗黙的に実行する必要がありますか?