Python面向对象的三大特性之多态

什么是多态?

多态指的是一类事物有多种形态

动物有多种形态:人,狗,猪

  • 多态:指的是定义角度

  • 多态性:指的是使用角度

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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)去调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值