栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

用多重继承调用父类__init__,正确的方法是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用多重继承调用父类__init__,正确的方法是什么?

两种方法都可以正常工作。使用的方法

super()
为子类带来更大的灵活性。

在直接呼叫方式中,

C.__init__
可以同时呼叫
A.__init__
B.__init__

在使用时

super()
,需要将类设计为协作多重继承where
C
调用
super
,这将调用
A
的代码,该代码也将调用
super
,从而调用
B
的代码。请参阅http://rhettinger.wordpress.com/2011/05/26/super-
considered-super
,以详细了解可以使用进行的操作
super

[回答问题,稍后编辑]

因此,似乎除非我知道/控制我从(A和B)继承的类的初始化,否则我无法对我正在编写的类(C)做出安全的选择。

参考的文章显示了如何通过在

A
和周围添加包装器类来处理这种情况
B
。标题为“如何合并非合作类”的部分提供了一个可行的示例。

可能希望多重继承更容易,让您轻松组成Car和Airplane类来获得FlyingCar,但现实情况是,单独设计的组件通常需要适配器或包装器,然后才能像我们希望的那样无缝地组装在一起:-)

另一个想法:如果您对使用多重继承来编写功能不满意,则可以使用composition来完全控制在哪些情况下调用哪种方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624666.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号