4-1深入类和对象--鸭子类型和多态

本文探讨了Python编程中的鸭子类型和多态概念。鸭子类型强调对象行为而非类型,通过检查对象是否具有特定方法来判断其功能。示例展示了Dog、Cat和Duck类如何实现相同方法并能在通用函数animal_sound中正常工作。同时,介绍了多态允许不同类实现相同接口,通过通用方式处理不同对象,增强了代码的灵活性和可扩展性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

鸭子类型是一种动态类型的编程风格,它强调了对象的行为(方法和属性)而不是其类型。就像是,如果它看起来像一只鸭子,叫起来像一只鸭子,那么它就是一只鸭子。在Python中,这意味着我们关注对象是否有我们需要的方法或属性,而不是关注对象的具体类型。

class Dog:
    def speak(self):
        return "Woof!"

class Cat:
    def speak(self):
        return "Meow!"

class Duck:
    def speak(self):
        return "Quack!"

def animal_sound(animal):
    return animal.speak()

dog = Dog()
cat = Cat()
duck = Duck()

print(animal_sound(dog))  # 输出 "Woof!"
print(animal_sound(cat))  # 输出 "Meow!"
print(animal_sound(duck))  # 输出 "Quack!"

在这个示例中,我们有三个不同的类:Dog、Cat和Duck,它们都有一个名为speak的方法。然后,我们定义了一个名为animal_sound的函数,它接受任何具有speak方法的对象作为参数。这就是鸭子类型的体现,dog = Dog(),print(animal

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值