Python多重继承初始化

最近因为论文在搞Python,发现Python里面的多重继承很有意思

blob.png

这个就是我的一个模型,其中最子的类是用我自己的IAGRU来搞wikiQA,所以继承了两个类,一个是处理wikiqa数据的,还有一个是IAGRU模型的


但是在初始化的时候,那两个父类各自有很多初始化函数,我们可以看到

blob.png

blob.png

那么,当我们在子类初始化的时候,同时往两个父类添加参数,但是我们没法一一的在init里面写,因为父类的参数太多了,所以有一个办法就是用**kwargs这种指针的方式~~~

但是 现在问题来了,我在子类的init参数里面写了一个 **kwargs表示父类需要的参数,然后下面有一个父类的舒适化函数,把这个指针传进去

blob.png

但是两个父类怎么知道哪个是自己要的呢?

所以你要在父类的初始化函数里面也写一个 **kwargs,这样父类就可以只从子类传过来的里面拿自己要的,然后把剩下的(也不能说剩下的)放到**kwargs里面

这样就可以将有效的参数传给不同的父类了,父类只需要从传过来的参数里面拿自己需要的就行

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

PS:Python真是一个很好用的面向对象

你的子类有一个属性 arms,但是父类没有这个属性,但是当你用这个子类初始化的时候会有这个arms,那么你用子类的实例调用父类的一个方法(当然子类也继承了)也可以用这个arms(arms是子类的东西)

所以大蟒蛇真是牛逼

留下您的评论

回复列表:

By王炳宁 on March 2, 2016 | 类别 Python

关于本站