【python学习】面向对象编程2

知识回顾

类的继承

子类继承父类的所有内容,可以继承多个。
如果是多继承,查找顺序按照mro算法。

类的派生

在继承的基础上,子类会添加属于自己的属性。

类的组合

把对象当作变量值/参数/返回值/容器使用,可以间接的使用对象的方法。

菱形继承问题

继承多个父类,并且最终汇集到一个父类。

新式类

  1. 继承了object类的类,Python3中只有新式类。
  2. 广度优先:老祖宗最后查。

经典类

  1. 没有继承object类的类,只有Python2中有。
  2. 深度优先:一路走到底,然后再找继承的第二个。

多态与多态性

多态就是多种形态,比如水有液态、固态、气态三种形态。多态的概念来自C和Java衍生过来的。Python本身就是多态,可以说根本就不支持多态。使用的时候需要引入模块。
多态性的使用,提供借口的概念。
不推荐使用

类的封装

封装:打包,封起来,装起来。

封装分为两个层面:

  1. 第一层面(类和对象分隔):对象能拿到类的东西,但是类能拿到对象的东西吗?不能!
  2. 第二层面(类内部和外部分隔):内部可以使用,外部不可以使用。在需要封装的属性/方法前面加上__。

封装有什么用:

  1. 对于属性:藏起来了,保护了你的隐私,类内部的属性不让其他人访问。
  2. 对于方法:精简了代码,不需要取关心其他的内部实现。

封装在定义阶段就已经执行了,之后都不会做这种处理。

类的property特性

装饰器@property:方法不用加括号使用。
获取值的时候触发,不需要加括号使用,不能加参数。
property一般用在:本来是方法,但是它应该是属性的时候,就应该使用@property

类与对象的绑定方法和非绑定方法

绑定给对象,只有对象能用,但是类也可以使用,使用的时候必须得传参。
绑定给类的方法,类能使用,对象也可以使用,但是参数依然是类。

什么都不绑定的,非绑定方法。其实就是定义了普通的函数。

什么时候使用?

  1. 这个方法需要使用类作为参数的时候就得使用类的绑定方法。
  2. 这个方法需要使用对象作为参数的时候就得使用对象绑定方法。
  3. 这个方法既不不需要类作为参数又不需要对象作为参数的时候,使用非绑定方法。也称为静态方法。

你可能感兴趣的:(学习,python,学习笔记)