概述
鸭子类型:
多态的概念是应用于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()
最后
以上就是贪玩猫咪为你收集整理的多态和鸭子类型的全部内容,希望文章能够帮你解决多态和鸭子类型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复