面向对象和异常 继承 多重继承 多态 面向对象特性的总结 类属性、方法和实例属性、方法总结 异常 异常的简介 异常的处理 异常的传播 异常对象 继承 多重继承 Python中支持多重继承(开发中很少使用多重继承,且尽量避免多重继承) 多个父类中有同名的方法,则在第一个父类寻找,然后再找第二个,以此类推 类名.__bases__ —— 获取当前类的所有父类 类名.__mro__ —— 获取继承执行的顺序 class A: def text(self): print('我是A') class B: def text(self): print('我是B') class C(A,B): #根据继承顺序寻找,A在前,先找A的方法,如果B在前,现在B的方法 pass c = C() c.text() # 我是A C.__bases__ # (<class '__main__.A'>, <class '__main__.B'>) C.__mro__ # (<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <class 'object'>) 多态 多态是面向对象德三大特性之一 概念 —— 对象可以通过不同的形态去呈现(多种形态) 表现形式 —— 一个可以传递对象的函数中,代码块中有调用这个对象的属性或方法,它就可以作为参数传递。这个函数不会考虑对象的类型,只要有对象的属性或方法就可以,那么这个现象就是一个多态的体现。如果这个函数中做了一个类型的检查,只有特定类才可以使用时,这个函数就违反了多态特性 # 多态的体现 class A: name = 'A' class B: name = 'B' def text(obj): print ('我是%s' % obj.name) a = A() b = B() text(a) # 我是A text(b) # 我是B # 违反多态特性 class A: name = 'A' class B: name = 'B' def text(obj): if isinstance(obj,A): print ('我是%s' % obj.name) a = A