python 多态

面向对象语言的三大特性

1、继承

2、多态

5、封装

一、多态

1、定义

一个类的多种形态,如一个文件的格式可以是txt、word、excel等

2、python天生多态

python是动态的强制类型语言,数据类型不需要定义,在归一化的过程中不需要定义一个类,让其它类继承,来解决数据类型的不同

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()

二、鸭子类型

1、定义

两个类相似,并且不是继承的兄弟关系

2、优点

解耦,松耦合;两个类互相独立,互不影响;没有规范要求

3、缺点

太随意,全靠自觉

4、例子

list和tuple,类型相似,但是没有使用继承,而是使用鸭子类型

 

PS:

1、python主推鸭子类型

2、接口类和抽象类在python中是不必要条件

3、多态在python中也不是很重要,因为python天生多态

 
posted @ 2019-05-27 21:47  市丸银  阅读(250)  评论(0编辑  收藏  举报