Python基础之面向对象:4、三大特征-多态
2023-02-18 16:27:52 时间
面对对象之多态
一、多态
1、多态的概念
多态在实际应用时较为抽象,指事物的多种形态,而相同的类,就应该具有这个类的基本功能
就比如说,人作为一个种类,每一个人就相当于对象,在每个对象当中,我们都会走路、说话、吃饭,而每当我们听到这些名词时就会自然的联想到相应的动作,和作用。这就是多态的一种表现形式。
也就是说,当我们在定义同一个父类中的多个子类时,就应该把每个子类中形态相同,而代码不同的函数名同一定义为同一种叫法
"""
鸭子类型: 只要你看上去像鸭子 走路像鸭子 说话像鸭子 那么你就是鸭子
"""
2、多态的实际应用
1、自我约束
# 1、定义一个类
class Animal(self):
class Animal:
def spark(self):
'''叫的方法'''
pass
class Cat(Animal):
def spark(self):
print('喵喵喵')
class Dog(Animal):
def spark(self):
print('汪汪汪')
class Pig(Animal):
def spark(self):
print('哼哼哼')
2、abc模块
import abc
# 指定metaclass属性将类设置为抽象类,抽象类本身只是用来约束子类的,不能被实例化
class Animal(metaclass=abc.ABCMeta):
@abc.abstractmethod
# 该装饰器限制子类必须定义有一个名为talk的方法
def talk(self):
# 抽象方法中无需实现具体的功能
pass
class Cat(Animal):
# 但凡继承Animal的子类都必须遵循Animal规定的标准
def talk(self):
pass
cat = Cat()
# 若子类中没有一个名为talk的方法则会抛出异常TypeError,无法实例化
相关文章
- 带你掌握如何使用CANN 算子ST测试工具msopst
- 一招教你如何高效批量导入与更新数据
- 送你5个MindSpore算子使用经验
- 编译器优化:何为别名分析
- 华为云宣布全面建设全球初创生态,3年内赋能10000家高潜初创企业
- 解析Stream foreach源码
- 带您了解昇腾模型压缩工具
- 一文带你体验MRS HetuEngine如何实现跨源跨域分析
- 基于lio-sam框架,教你如何进行回环检测及位姿计算
- 【火热招募】一文看懂华为云IoT Edge边缘计算开发者大赛技术亮点
- 天天写SQL,这些神奇的特性你知道吗?
- 一起学习ML和DL中常用的几种loss函数
- 基于 PyTorch 和神经网络给 GirlFriend 制作漫画风头像
- 详解KubeEdge边缘网络项目EdgeMesh
- 中秋节,华为云AI送上超级大月亮制作教程,体验赢开发者键鼠套装
- VLDB'22 HiEngine极致RTO论文解读
- 强扩展、强一致、高可用…GaussDB成为游戏行业的心头爱
- 推理网络精度不达标,5个方法轻松搞定
- 一文带你认知定时消息发布RocketMQ
- 手把手教你君正X2000开发板的OpenHarmony环境搭建