Python之多态
什么是多态?
多态指的是一类事物有多种形态
动物有多种形态:人,狗,猪
多态:指的是定义角度
多态性:指的是使用角度
import abc # 多态:同一种事物的多种形态,动物分为:猪类,人类 class Animal(metaclass=abc.ABCMeta): @abc.abstractmethod # 子类必须继承 def run(self): pass class pig(Animal): def run(self): # 继承父类必须有这个方法 print('pig is walking') pass class pepple(Animal): def run(self): print('pepple is walking') peo1=pepple() pig1=pig() # peo1.run() # pig1.run() # 多态性:一种调用方式,多种执行结果 依赖于: ''' 1、继承 ''' # 定义统一的接口,可以传入不同类型的值,但是调用的逻辑都一样,执行的结果却不一样 def fun(obj): # obj 这个参数没有类型限制,可以传入不同的值 obj.run() # 大家都继承 animal 类,都有 run,但执行的结果不一样 fun(peo1) fun(pig1) pepple is walking pig is walking 不同类型的值,调用同一接口,出现不同的结果 ================== l=[1,2,3,4] s='hello' t=(4,5,6,7,8) # 3个不同类型的值 def fun1(obj): # 定义统一接口 return obj.__len__() print(fun1(l)) print(fun1(s)) print(fun1(t)) 返回不一样的结果 4 5 5
为什么要用多态性(多态性的好处)
其实大家从上面多态性的例子可以看出,我们并没有增加什么新的知识,也就是说python本身就是支持多态性的,这么做的好处是什么呢?
1.增加了程序的灵活性
以不变应万变,不论对象千变万化,使用者都是同一种形式去调用,如func(animal)
2.增加了程序额可扩展性
通过继承animal类创建了一个新的类,使用者无需更改自己的代码,还是用func(animal)去调用