面向对象语言的三大特性
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天生多态