天天看点

python基础-多态类

多态 python 天生支持多态

def func(int num,str name):
    pass

func('alex',2)
class Payment:pass

class Alipay():
    def pay(self,money):
        print('已经用支付宝支付了%s元' % money)

class Applepay():
    def pay(self,money):
        print('已经用applepay支付了%s元' % money)

def pay(pay_obj,money):  # 统一支付入口  归一化设计
    pay_obj.pay(money)

pay()
           

什么是多态

python 动态强类型的语言

鸭子类型

list tuple

不崇尚根据继承所得来的相似

我只是自己实现我自己的代码就可以了。

如果两个类刚好相似,并不产生父类的子类的兄弟关系,而是鸭子类型

list tuple 这种相似,是自己写代码的时候约束的,而不是通过父类约束的

优点 : 松耦合 每个相似的类之间都没有影响

缺点 : 太随意了,只能靠自觉

class List():
    def __len__(self):pass
class Tuple():
    def __len__(self):pass

def len(obj):
    return obj.__len__()

l = Tuple()
len(l)
           

#强类型语言 多态

#python 语言 鸭子类型

接口类和抽象类 在python当中的应用点并不是非常必要