25.Python之多态和鸭子类型

多态(是一种概念)

  • 在Python中一切皆对象,处处是多态。
  • 多态指的是同一种事物的多种形态,在程序中用继承可以表现出多态。
  • 多态性:可以在不考虑对象具体类的形况下直接参考基类的标准使用对象。

鸭子类型

  • Duck typing 这个概念来源于美国印第安纳州的诗人詹姆斯·惠特科姆·莱利(James Whitcomb Riley,1849-1916)的诗句:" When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck." 翻译:“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”
  • 在鸭子类型中,关注的不是对象的类型本身,而是它是如何使用的。"鸭子类型"像多态一样工作,但是没有继承。
  • 在Python中崇尚“鸭子类型”。所谓的“鸭子类型”可以这么理解,现在我规定,只要你会用Python写程序,你就是Python程序员,而不必去考Python认证证明你是Python程序员。比如:一个对象中只要有__iter__方法,那么这个对象就是可迭代对象;一个对象只要含有__iter__方法和__next__方法,那么这个对象就是迭代器;而不用去继承什么,证明什么,只要你符合我的标准,你就是我想要的!

你可能感兴趣的:(25.Python之多态和鸭子类型)