面向对象编程
核心是‘对象’,对象指的是特征和技能的结合体
类
类是一些列对象相同的特征与技能的结合体
定义类时发生的事情:
1. 会产生一个空的名称空间 2. 会把类内部所有名字扔到名称空间 3. 会执行类内部的代码
调用类时发生的
1. 会产生一个空的对象 2. 自动触发init函数 3. 会将对象与括号内的参数一同传给init
调用类的过程称之为类的实例化
init类内部创建的,会调用类触发该方法
对象查找顺序
- 会先去对象的名称空间
- 对象没有去找类的名称空间
对象的绑定方法
- 类调用就是调用普通的函数
- 对象调用类内部的函数,称之为对象的绑定方法
一切皆对象
面向对象
三大特性
- 继承
- 封装
- 多态
继承
- 什么是继承
继承指的是新建类的方式,新建的类称之为子类或派生类
子类的继承父类的属性,并且可以派生自己的属性
- 为什么要继承
继承是为了减少代码的冗余
如何实现继承
首先确定好谁是子类,谁是父类
在定义类时,子类+ (),()内写父类,实现继承
寻找继承关系
先抽象,再继承
抽象
抽取相似的部分,称之为抽象
继承
对象----》调用类-----》 继承类
继承关系
对象是特征与技能的结合体
类是一系列对象相同的特征与技能的结合体
继承是一系列类相同的特征和技能的结合体
在继承背景下,对象属性的查找顺序:
对象先去对象名称空间中寻找
去若没有对象,则去类里面找
若当前类是子类,并且没有对象找的属性,会去父类中查找
注意: 对象查找属性,若子类有,不管父类有没有,以子类的为准
派生
派生指的是子类继承父类的属性,并且派生出新的属性
子类与父类相同属性,则以子类的为准
继承是谁与谁的关系,指的是类与类的关系,子类与父类从属关系
子类派生新的功能,并 重用父类的属性
组合
内置方法
__dict__ 查看对象名称空间,对象属性
__bases__ 类的父类,类使用
__class__查看子类名称空间