python之动态性

对于静态语言来说,如果函数内需要的是Animal类型,则传入的对象必须是Animal类型或者它的子类,不然是调用不了其run方法的。

但是python属于一种动态语言,传入的不一定钥匙Animal类型,只需要保证传入的对象有一个run()方法就可以了

比如:

class Animal(object):
    def run(self):
        print('animal is running')

class man(object):
    def run(self):
        print('man is running')
def runtwice(animal):
    animal.run()
a=Animal()
b=man()
c=runtwice(b)
print(a)

mananimal是不同的类,但是在调用runtwice函数时,参数指明了要用animal类型,但是我们传入的只是一个具有run方法的man类。然而这样也是可以实现的,这就是动态语言的鸭子类型,只要一个对象看起来像鸭子,跑起来像鸭子,那么它就可以被看作成鸭子。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值