python之路——25

复习

1.继承
表示什么是什么的关系
1.单继承
1.先抽象,再继承
2.子类没有的名字,调用父类
3.类中使用self,看清楚self指向谁
2.多继承
1.新式类和经典类
1.新式类:广度优先
经典类:深度优先
2.新式类中,使用mro查看继承顺序
使用super查找父类,按照mro顺序(python3)

学习内容

1.接口类
1.源自java; python原生不支持
2.支持多继承,接口类中的所有方法都必须不能实现——来自java习惯
3.接口隔离原则:
使用多个专门的接口,而不使用单一的总接口。即客户端不应该依赖那些不需要的接口。
4.规范类,需要某项功能,就继承某些类,规范使用相应功能
2.抽象类:
1.python原生支持
2.不支持多继承,抽象类中方法可以有一些代码的实现——java习惯
3.规范
单继承,能实现的功能都是一样的,所以在父类中可以有一些简单的基础
多继承,由于功能复杂,所以不容易抽象出相同的功能具体实现写在父类中
接口类和抽象类不能实例化
3.多态
1.python 天生支持多态
python 动态强类型语言
python 不崇尚根据继承所的来的相似
只是自己实现自己的代码
如果两个类相似,并不产生父类的子类的兄弟关系,而是鸭子类型
list tuple 通过代码,而非继承得来的,相似
优点:松耦合,每个相似的类之间没有影响
缺点:太随意
2.多态:一类事物有多种形态
4.封装
1.广义上面向对象封装:代码保护
面向对象的思想本身就是一种只让自己的对象能调用自己类中的方法
2.狭义上的封装——面向对象的三大特性之一
属性和方法放进黑箱
3.私有
对象的私有属性
类中的私有方法
类中的静态私有属性
所有的私有,都不能在类的外面调用
 
from abc import abstractclassmethod, ABCMeta
# 规范子类
class Payment(metaclass=ABCMeta):
    @abstractclassmethod
    def pay(cls,money):pass

class Wechat(Payment):
    def pay(self,money):
        print('s')
c = Wechat()

print(1>0<0)



猜你喜欢

转载自www.cnblogs.com/wan2-0/p/10765330.html