Python类总结-多态及鸭子类型

Python天生支持多态.

  • 什么是多态: 一类事务的多种形态.
  • 多态的一个例子

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

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

#由于python是弱类型的语言(可以传任何类型的参数),是动态强类型的语言
def pay( pay_obj, money ): #统一支付入口,归一化设计
    pay_obj.pay(money)

pay(Alipay(),100)
pay(Applepay(),1000)

>>>

用支付宝支付了100元
用Applepay支付了1000元
  • 举例二
  • list和tuple都有len方法
class List:
    def __len__(self):pass
    
class Tuple:
    def __len__(self):pass

#tuple和list为鸭子类型
    
def len(obj):
    return obj.__len__()#会去执行实例化对象中的__len__方法
l = List()
len(l)

原文地址:https://www.cnblogs.com/konglinqingfeng/p/9671279.html