Python面向对象-多态、装饰器以及集合

打印 上一主题 下一主题

主题 824|帖子 824|积分 2472

一、多态
多态的优势具体可以总结为如下⼏点,具体为:
增加了持续的灵活性
增加了持续的额外扩展的功能
  1. 1 class Animal(object):
  2. 2     def talk(self):
  3. 3         print("动物会叫")
  4. 4
  5. 5 class Cat(Animal):
  6. 6     def talk(self):
  7. 7         print("猫会叫")
  8. 8
  9. 9 class Dog(Animal):
  10. 10     def talk(self):
  11. 11         print("狗也会叫")
  12. 12
  13. 13 def func(animal):
  14. 14     animal.talk()
  15. 15 if __name__ == '__main__': #函数进入的入口
  16. 16     cat=Cat()       #对猫进行实例化的过程
  17. 17     func(animal=cat)   #调用方式不需要修改,就直接可以输出
  18. 18     dog=Dog()
  19. 19     func(animal=dog)
复制代码
运行结果如下:
  1. 猫会叫
  2. 狗也会叫
  3. Process finished with exit code 0
复制代码
通过上述代码,我们可以知道:多态性可以理解为对Cat⽽⾔只是产⽣了⼀个对象,使⽤者完全可以在不需要修改⾃⼰的情况下,就能够调⽤Cat和Dog对象的talk的⽅法。
二、鸭子类型
鸭子类型:在Python⾥⾯,所谓鸭⼦类型就是指“如果看起来像,叫声像⽽且⾛路起来像鸭⼦,那么它就是鸭⼦”。
如上述,如果看起来像,叫声像像猫,那么它就是猫。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

干翻全岛蛙蛙

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表