鸭子类型其实就是多态!可以这么说吗?
鸭子类型:class Animal:
def call(self):
pass
class Cat(Animal):
def call(self):
print('cat call maomao~~~')
class Dog(Animal):
def call(self):
print('dog call wangwang~~~')
end
def func test_duck(duck):
duck.call()
test_duck(Cat()) #Cat()实例在执行
test_duck(Dog()) #Dog()实例在执行
多态:
class A:
def func(self):
print("调用了我......")
class B:
def func(self):
print("调用了我......")
a = A()
a.func()
b=B()
b.func()
本帖最后由 Twilight6 于 2020-6-12 11:48 编辑
多态:
指的是一类事物有多种形态
鸭子类型:
Python崇尚鸭子类型,即‘如果看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子’
我觉得应该不行吧,不过应该可以说鸭子类型是多态的一种表现吧 不太准确。
鸭子类型属于调用同一种功能,或者说鸭子函数可以接收任何类型的参数,都可以使用鸭子函数中的功能。
而多态更倾向于继承。 Twilight6 发表于 2020-6-12 11:46
多态:
恩恩好的谢谢
页:
[1]