多态
在说多态之前,先看下以下代码: class Animal: pass class Dog(Animal): pass class Cat(Animal): pass a = Animal() b = Dog() c = Cat() print(isinstance(a, Animal)) # True print(isinstance(b, Dog)) # True print(isinstance(c, Cat)) # True print(isinstance(b, Animal)) # True print(isinstance(c, Animal)) # True print(isinstance(a, Dog)) # False print(isinstance(a, Cat)) # False # 结论:子类的对象可以是父类的类型之一,但父类的对象不能是子类类型 通过上面的例子,可以知道父类可以对应多种类型,这就叫多态 在项目中,我们会经常遇到存储图片的问题,图片的类型很多,如:.jpg .png .pdf等等 我们如何用多态进行管理呢?代码如下 class PictureFile: def __init__(self, filename): if not filename.endswith(self.ext): # 让父类可以访问不同子类的属性,这就是多态