python:鸭子类型使用场景
1 前言
“一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟可以被称为鸭子。“----鸭子模型
鸭子模型是Python中的一种编程哲学,也被称为“鸭子类型”。它来源于一句话:“如果它走起路来像鸭子,叫起来也像鸭子,那么它就是鸭子。”这个哲学思想强调对象的行为比其具体类型更重要。与C++、Java等编译型语言不一样的是,Python作为解释器语言,其语言层面的设计理念有独特之处,鸭子模型便是其中之一。在面向对象的世界中,编译型语言判断一个对象是否隶属于某个类,依靠的是类的继承机制,换句话说,即使一个对象实现了某个类的所有方法也不行;而在Python中,只要实例对象实现了某个类的所有必要的方法,即使不存在继承关系,也可以看作是这个类。
2 使用
举个简单的栗子:
class Duck:
def walk(self):
print(f'I am duck, walk with {
self}')
def drink(self):
print(f'I am duck, drink with {
self}')
class SmallBird:
def walk(self):
print(f'I am also duck, walk with {
self}')
def drink(self):
print(f'I am also duck, drink with {
self}')
def duck_action_run(obj):
obj.walk()
obj.drink()
duck = Duck()
smallBird = SmallBird()
duck_action_run(duck)
print('*' * 10)
duck_action_run(smallBird)
结果:
I am duck, walk with <__main__.Duck object at 0x0000017442006FA0>
I am duck, drink with <__main__.Duck object at 0x0000017442006FA0>
**********
I am also duck, walk with <__main__.SmallBird object at 0x0000017442006FD0>
I am also duck, drink with <__main__.SmallBird object at 0x0000017442006FD0>

我们来分

最低0.47元/天 解锁文章
89

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



