Python中,什么是鸭子类型(duck typing)🦆
描述
当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子🦆。”
特性
- 关注点在对象的行为或接口,而不是类型
- 比如 file, StringIO, socket对象 都支持 read/write 方法(file like object)
- 比如定义了
__iter__
魔术方法的对象都可以用 for 迭代
示例
class Duck:
def quack(self):
print("gua gua")
class Person:
def quack(self):
print("I am a person ,But I can gua gua too")
def in_the_forest(duck):
duck.quack()
def game():
donald = Duck()
john = Person()
in_the_forest(donald)
in_the_forest(john)
print(type(donald))
print(isinstance(donald, Duck))
game()
作者:皎然CEO
链接:https://www.cnblogs.com/jiaoran/p/14934640.html
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦(っ•̀ω•́)っ✎⁾⁾!