我是靠谱客的博主 贪玩猫咪,这篇文章主要介绍多态和鸭子类型,现在分享给大家,希望可以做个参考。

鸭子类型:
多态的概念是应用于Java和C#这一类强类型语言中,在使用一个变量时需要指定这个变量的类型;而Python崇尚"鸭子类型"
动态语言调用实例方法时不检查类型,只要方法存在,参数正确,就可以调用。这就是动态语言的“鸭子类型”,它并不要求严格的继承体系,一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子。
我觉得可迭代对象这个变量的出现就非常重要
比如extend这个方法,只要传入的是可迭代对象就可以使用这个方法

a = [1,2]
b = [3,4]
c = (5,6)
d = '789'
a.extend(b)
a.extend(c)
a.extend(d)
print(a)

多态:
定义时的类型和运行时的类型不一样,就称为多态。

class Cat(object):
def info(self):
print('i am cat')
class Dog(object):
def info(self):
print('i am dog')
class Duck(object):
def info(self):
print('i am duck')
#在这里把Cat Dog,Duck开始是当做变量的,直到运行时,实例化时才当做函数处理,当调用info时才会调用呢
animal_list = [Cat,Dog,Duck]
for animal in animal_list:
animal().info()
# 也可以这样做
animal_list = [Cat(), Dog(), Duck()]
for animal in animal_list:
# animal().info()
animal.info()

最后

以上就是贪玩猫咪最近收集整理的关于多态和鸭子类型的全部内容,更多相关多态和鸭子类型内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(110)

评论列表共有 0 条评论

立即
投稿
返回
顶部