一、多继承概念
子类 可以拥有多个父类,并且具有所有父类的属性和方法
语法:
class 子类名(父类1,父类2……)
pass
<注>如果不同的父类中存在同名的方法,应该尽量避免使用多继承
二、MRO—方法搜索顺序
Python中针对类提供了一个内置属性__mro__ 可以查看方法搜索顺序
MRO是method resolution order,主要用于在多继承时 判断方法、属性的调用路径
eg:
print(子类名.__mro__)
三、新式类和旧式(经典)类
object 是Python为所有对象提供的基类,提供一些内置的属性和方法,可以使用dir函数查看
新式类:以object为基类的类,推荐使用
旧式类:不以object为基类的类,不推荐使用
在Python3.x中定义类,如果没有指定父类,会默认使用object作为该类的基类——Python3中的类都是新式类
Python2.x中定义类时,如果没有指定父类,则不会以object作为基类
新式类和经典类在多继承时会影响方法的搜索顺序
<如果没有父类,建议统一继承自object>
class 类名(object):
pass