多态(是一种概念)
- 在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__
方法,那么这个对象就是迭代器;而不用去继承什么,证明什么,只要你符合我的标准,你就是我想要的!
网友评论