Python多态依赖运行时对象的实际行为而非编译时类型检查,体现“鸭子类型”思想;核心条件是统一方法名、不同类各自实现、调用时不检查类型;分为继承式(结构清晰)和鸭子式(灵活自由)两种模式,由运行时绑定、动态增删属性及无类型约束等特性支撑。

Python多态不是靠编译时类型检查实现的,而是依赖运行时对象的实际行为——只要对象有某个方法,就能被调用。它本质是“鸭子类型”的直接体现:不看你是谁,只看你能不能做这件事。
多态的核心条件
实现多态不需要强制抽象类或接口声明,但常见模式包含三个关键点:
- 存在统一的方法名(比如 draw()、speak()、play())
- 不同类各自提供该方法的具体实现(哪怕没有继承关系)
- 函数或逻辑中只调用这个方法名,不检查对象类型
继承式多态:最易理解的写法
通过父类定义通用接口,子类重写方法,是最清晰的组织方式:
class Animal:
def sound(self):
raise NotImplementedError
class Dog(Animal):
def sound(self):
print("汪汪")
class Bird(Animal):
def sound(self):
print("啾啾")
def make_noise(animal):
animal.sound() # 同一调用,不同输出
立即学习“Python免费学习笔记(深入)”;
这种写法结构清晰,适合初学和团队协作,也便于 IDE 推导和类型提示。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~