首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >派生类构造函数在python中是如何工作的?

派生类构造函数在python中是如何工作的?
EN

Stack Overflow用户
提问于 2009-12-12 12:16:27
回答 1查看 31.4K关注 0票数 23

我有以下基类:

代码语言:javascript
复制
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))

现在,我有了一个包含以下代码的派生类:

代码语言:javascript
复制
class NeuralNetworkBackPropagation(NeuralNetworkBase):
    def __init__(self, numberOfInputs, numberOfHiddenNeurons, numberOfOutputs):
        self.outputLayerDeltas = numpy.zeros(shape = (numberOfOutputs))
        self.hiddenLayerDeltas = numpy.zeros(shape = (numberOfHiddenNeurons))

但是当我实例化NeuralNetworkBackPropagation时,我希望两个构造器都是called.This,我不想重写基类的构造器。python在运行派生类‘one’时会默认调用基类构造函数吗?我是否必须在派生类构造函数中隐式地执行此操作?

EN

回答 1

Stack Overflow用户

发布于 2009-12-12 12:21:39

您必须将其放入NeuralNetworkBackPropagation的__init__()方法中,即调用父类的__init__()方法(NeuralNetworkBase):

代码语言:javascript
复制
NeuralNetworkBase.__init__(self, numberOfInputs, numberOfHiddenNeurons, numberOfOutputs)

父类的构造函数始终是自动调用的,除非在子类中覆盖它。如果您在子类中覆盖了它,并且还想调用父类的类构造函数,那么您就必须像我上面所展示的那样去做。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1892269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档