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)去调用
本文来自博客园,作者:I'm_江河湖海,转载请注明原文链接:https://www.cnblogs.com/jhhh/p/16763937.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下