当前位置: 首页 > news >正文

Python多态的简单分享

什么是多态?

多态(Polymorphism)是面向对象编程中的一个重要概念,指的是不同对象可以以相同的方式调用相同的方法,但这些方法会表现出不同的行为。多态可以增强代码的灵活性和可维护性。

Python中的多态

在Python中,多态通过继承和方法重写来实现。基类定义了一些方法,子类可以重写这些方法,从而使得相同的方法在不同的子类中表现出不同的行为。

一个简单的例子,展示了如何在Python中实现多态:

class Animal:def sound(self):raise NotImplementedError("Subclasses should implement this!")class Dog(Animal):def sound(self):return "Woof"class Cat(Animal):def sound(self):return "Meow"def make_sound(animal):print(animal.sound())# 实例化对象
dog = Dog()
cat = Cat()# 调用方法
make_sound(dog)  # 输出: Woof
make_sound(cat)  # 输出: Meow
​

方法重写

在上述例子中,基类 Animal定义了一个抽象方法 sound,子类 Dog和 Cat分别重写了这个方法。make_sound函数能够接收任何 Animal类型的对象,并调用其 sound方法,体现了多态的特性。

鸭子类型

Python是一种动态类型语言,采用鸭子类型(Duck Typing)来实现多态。鸭子类型意味着一个对象的有效语义由当前方法和属性的集合决定,而不是它是某个特定类的实例。

class Bird:def sound(self):return "Chirp"class Duck:def sound(self):return "Quack"def make_sound(animal):print(animal.sound())bird = Bird()
duck = Duck()make_sound(bird)  # 输出: Chirp
make_sound(duck)  # 输出: Quack
​

多态的好处

  1. 代码复用:通过基类和子类的设计,可以重用代码,减少重复。
  2. 灵活性:可以在不改变现有代码的情况下,通过添加新的子类来扩展功能。
  3. 可维护性:代码结构清晰,便于维护和扩展。

多态与抽象基类

Python的 abc模块提供了抽象基类(Abstract Base Class),可以用来定义抽象方法,并确保子类实现这些方法。

from abc import ABC, abstractmethodclass Animal(ABC):@abstractmethoddef sound(self):passclass Dog(Animal):def sound(self):return "Woof"class Cat(Animal):def sound(self):return "Meow"

相关文章:

  • HarmonyOS性能优化——感知流畅优化
  • C++ 第一阶段 基本语法 - 第一节:变量与数据类型详解
  • 19.数学函数
  • eps8266作为AP服务端 esp32c3作为STA客户端
  • LVS +Keepalived 高可用群集
  • 稀疏大模型架构与训练算法研究
  • 【排坑指南】MySQL初始化后,Nacos与微服务无法连接??
  • 什么是gateway以及在微服务中是如何使用的
  • openEuler安装BenchmarkSQL
  • 使用YOLO模型进行线程安全推理
  • 如何高效实现公司文件管理
  • HarmonyOS5 分布式测试:断网情况支付场景异常恢复验证
  • 筑牢安全防线:电子文件元数据驱动的 AI 知识库可控管理方案
  • Redis从库读取主库创建且已过期的key
  • 断言(Assertion)中常用的正则表达式
  • 《汇编语言:基于X86处理器》第2章 x86处理器架构
  • Neo4j 入门到精通(Cypher语言详解)
  • 第 1 章,[标签 Win32] :第一个 WIn32 程序,头文件
  • pthread_once函数使用场景与原理
  • 设计模式精讲 Day 5:原型模式(Prototype Pattern)
  • 手机wordpress教程/seo管理系统创作
  • 爱做的小说网站/新冠疫情最新情况
  • 阿里巴巴的网站怎么做/网络推广公司哪里好
  • 网页跟网站的区别/企业推广宣传方式
  • 深圳外网站建设/最新新闻国内大事件
  • 做网站开发app/怎么做网站宣传