day_25面向对象
继承的另一种使用方式 最常见的是直接继承一个已经存在的类 当你想要创建一个新的类,发现这个类中的一些在某一个类中已经存在了 那就没必要从头开始写,可以直接继承已有的类,然后作补充 class MyList(list): def __init__(self,element_cls): # 当你覆盖了init方法时 # 不要忘记调用super().init函数让父类完成原有的初始化操作 super().__init__() self.element_cls = element_cls def append(self, object): # if isinstance(object,str) if object.__class__ == self.element_cls: super().append(object) else: print("只能存储%s类型!" % self.element_cls.__name__) 2.python支持多继承,一个类可以同时继承多个父类 好处是更加灵活 问题是属性的查找顺序该怎么确定 #多继承时如果如果多个父类中出现了同名的属性/函数 #就不能用眼睛去判断查找顺序了,需要使用 mro列表来查看真正的继承顺序 #super在访问父类属性的时候,是按照mro列表一层层往上找的 # 多继承虽然更灵活,但是问题也是成正比的.所以尽量不要使用多继承 组合