40.多继承,super

  1. 多继承
    1. 多继承的使用注意事项

多继承

子类可以拥有多个父类,并且具有所有父类的属性和方法
语法

class 子类名(父类名1,父类名2...)
    pass

多继承的使用注意事项

  • 问题:如果不同的父类存在同名的方法,子类对象在调用方法时,会调用哪一个父类中的方法呢?
    开发时,应该尽量避免这种容易产生混淆的情况!——如果父类之间存在同名的属性或方法,应该尽量避免使用多继承
解决:使用 最底下的类名.__mro__ 方法查看继承调用的先后顺序

继承不是复制,只是指向了那个位置
1,super().__init__相对于类名.__init__,在单继承上用法基本无差
2,但在多继承上有区别,super方法能保证每个父类方法只会执行一次,而使用雷鸣的方法会导致方法被执行多次,具体看前面的输出结果
3,多继承时,使用super方法,对父类传参数,应该是由于Python中的super的算法导致的原因,必须把参数全部传递,否则会报错
4,单继承时,使用super方法,则不能全部传递,只能穿父类方法所需的参数,否则会报错
5,多继承时,相对于使用类名.__init__方法,要把每个父类全部写一遍,而使用super方法,只需写一句话执行全部父类的方法,这也是为何多继承需要全部传参数的原因

转载请注明来源,欢迎指出任何有错误或不够清晰的表达。可以邮件至gxnucgb@qq.com

文章标题:40.多继承,super

文章字数:398

本文作者:陈桂彬

发布时间:2019-08-06, 08:08:08

最后更新:2019-08-21, 23:42:34

原始链接:https://github.com/gxnucgb/gxnucgb.github.io/2019/08/06/40-多继承/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏

github