05 多继承、object类
多继承
Python中一个类可以继承多个父类,并且获得全部父类的属性和方法。
class A: def demo(self): print("demo") class B: def test(self): print("test") class C(A, B): pass c = C() c.demo() c.test()
运行结果:
E:\python3\python3.exe F:/PycharmProjects/project3-class/xh_14_多继承.py demo test Process finished with exit code 0
多继承父类方法冲突
在开发中,如果父类之间存在同名的属性和方法,应尽量避免使用多继承。
在python中,MRO(method resolution order 方法搜索规则)用来解决方法优先执行的问题,它是每个类的内置函数
可以使用 print(类名.__mro__)来查看在存在同名方法时按何种优先级执行:
(<class ‘__main__.C‘>, <class ‘__main__.A‘>, <class ‘__main__.B‘>, <class ‘object‘>)
如上表示:如C类中存在这个方法,则执行C类中的方法,否则按顺序(A类,B类,Object类)来最优执行。
object类
python3.x版本,如果一个类没有指定父类,则默认object为它的父类。
但在python2.x版本中,就没有默认指定object类。
所以在开发中,如果一个类没有指定父类,务必继承object类。
相关推荐
tangjikede 2020-04-30
猛禽的编程艺术 2020-04-18
Laozizuiku 2020-04-10
lhxxhl 2020-02-14
meylovezn 2020-02-12
taiyangshenniao 2020-01-03
gaedmihx 2019-11-18
82467413 2012-06-18
程松 2019-04-08
HuangXiaoChuan 2018-01-09
wangcaipang 2012-03-04
无所畏惧 2019-06-17
ZGCdemo 2015-02-08
麋鹿麋鹿迷了路 2011-07-08
85437811 2014-03-28
linbossdeboke 2018-11-19
lookFuture 2018-11-15
albertjone 2018-09-15