三十一、Python基础语法(多态)

多态:多态是面向对象编程中的一个重要概念。多态意味着不同的对象可以对同一消息做出不同的响应。

一、多态的特点

动态绑定:在 Python 中,函数或方法的调用是在运行时根据对象的实际类型来确定的,而不是在编译时确定。这使得代码更加灵活,可以根据不同的对象类型执行不同的操作。

同一操作作用于不同的对象可以有不同的表现形式:对于同一个方法名,不同的对象可以有不同的实现方式。这使得代码可以更加通用,能够处理多种不同类型的对象。

二、多态的优势

提高代码的可扩展性和可维护性:当需要添加新的对象类型时,只需要实现相应的方法,而不需要修改现有的代码。

增强代码的灵活性和通用性:多态使得代码可以处理不同类型的对象,而不需要为每种对象类型编写特定的代码。

三、多态例子

python 复制代码
class Animal:
    # 定义父类 Animal 的方法 make_sound,此方法暂时没有具体实现
    def make_sound(self):
        pass


class Dog(Animal):
    # 重写父类方法,定义 Dog 类的 make_sound 方法,返回特定的声音
    def make_sound(self):
        return "汪汪汪"


class Cat(Animal):
    # 重写父类方法,定义 Cat 类的 make_sound 方法,返回特定的声音
    def make_sound(self):
        return "喵喵喵"


def animal_sound(animal):
    # 定义函数 animal_sound,接受一个 Animal 类型的参数
    # 此函数会调用传入对象的 make_sound 方法
    return animal.make_sound()


dog = Dog()
cat = Cat()

print(animal_sound(dog))
# 这里调用 animal_sound 函数并传入 Dog 类的实例 dog。
# 函数内部会根据多态性,调用 dog 对象的 make_sound 方法,返回"汪汪汪"。

print(animal_sound(cat))
# 同理,这里传入 Cat 类的实例 cat,函数调用 cat 对象的 make_sound 方法,返回"喵喵喵"。
相关推荐
BIM云平台开发13 小时前
【App.vue里跟踪页面跳转和用户ID】
开发语言·前端·javascript
NiceCloud喜云13 小时前
ClaudeAPI 接入 n8n / Dify / Open WebUI 实战:Base URL 配置、调用示例与排错
开发语言·ai·chatgpt·aigc
庵中十三居士13 小时前
【纯AI无人工修改】AI Agent从0到1实战:50行Python手写核心循环,一次看懂所有Agent框架的底层逻辑
开发语言·人工智能·python
甄同学14 小时前
第二十篇:MCP协议集成,Claude Code如何扩展AI Agent的能力边界
开发语言·人工智能·qt
天天爱吃肉821814 小时前
# 商用车多体动力学整车仿真学习笔记(开篇总览)
人工智能·笔记·python·功能测试·学习·汽车
Allen说改装14 小时前
2025 APAxpo佛山改装展的展出规模达到了多少平方米?
人工智能·python
@atweiwei14 小时前
Langchainrust:中LLM-as-a-Judge,用 Rust 实现一套 LLM 评估系统
开发语言·后端·ai·rust·llm·rag
风华圆舞14 小时前
鸿蒙HarmonyOS 多模态输入实战 —— 图片与文档输入智谱/DeepSeek
开发语言·人工智能·华为·php·harmonyos·arkts·arkui
Ljwuhe14 小时前
C++——模板进阶
开发语言·c++