Loading

5.多继承

多继承
  子类可以拥有多个父类,并且具有所有父类的属性和方法
  多继承可以让子类对象同时具有多个父类属性和方法
语法:
 
 
多继承的注意事项
  如果不同的父类中有存在同名的方法或属性,应该尽量避免使用多继承
  多个父类存在同名属性或方法时,按MRO搜索顺序会调用第一个父类的同名方法或属性,后继承父类的同名方法或属性不会调用
 
python中的MRO --方法搜索顺序
  python中针对类提供了一个内置属性,__mro__可以查看方法的搜索顺序
  MRO是method resolution order ,注意用于多继承时判断方法、属性的调用露肩
 
格式:
print(类名.__mro__)
 
在搜索方法时,是按照__mro__的输出结果,从左到右的顺序查找的
如果在当前类中找到方法,就直接执行,不再搜索
如果没有找到,就查找下一个类中是否有对应方法,如果找到就执行,不在搜索
如果找到最后一个类的时,还没有找到方法,程序报错
 
新式类与旧式(经典)类
  新式类:以object为基类的类,推荐使用
  旧式类:不以object为基类的类,不推荐使用
  object是python为所有对象提供的基类,提供一些内置的属性和方法,可以使用dir函数查看
  object的内置属性和方法:
 
 
在python3.x中定义类的时候,如果没有指定父类,会默认使用object作为该类的基类,python3.x中定义的类都是新式类
在python2.x中定义类时,如果没有指定父类,则不会以object作为基类
为了保证编写的代码可以同时兼容2.x和3.x运行
在定义类的时候,如果没有父类,建议统一继承object
 

posted @ 2021-02-20 16:22  木子七  阅读(59)  评论(0编辑  收藏  举报