鸭子类型是一种动态类型的编程风格,它强调了对象的行为(方法和属性)而不是其类型。就像是,如果它看起来像一只鸭子,叫起来像一只鸭子,那么它就是一只鸭子。在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
本文探讨了Python编程中的鸭子类型和多态概念。鸭子类型强调对象行为而非类型,通过检查对象是否具有特定方法来判断其功能。示例展示了Dog、Cat和Duck类如何实现相同方法并能在通用函数animal_sound中正常工作。同时,介绍了多态允许不同类实现相同接口,通过通用方式处理不同对象,增强了代码的灵活性和可扩展性。
订阅专栏 解锁全文
142

被折叠的 条评论
为什么被折叠?



