1.静态语言
如果要传入animal类型,那你往函数传的必须是该类型,或者是它的子类,不然不能使用run()等方法
2.动态语言
对于动态语言来说,只要保证传入的对象里有这个run()这个方法,就可以调用,不用管传入的类型
(注:这里也不是很懂)
class animal(object):
def run(self):
print('一个')
class Dog(animal):
def run(self):
print('小狗一只')
class Timer(object):
def run(self):
print('时钟')
run_two(Timer())
结果:
时钟
时钟
一个比喻是:将动态语言比作“鸭子类型”,一个对象只要看起来像鸭子,走起路来像鸭子,那他就可以被看作是鸭子。