### 十一、多重继承
> Python支持多重继承,一个子类可以有多个直接父类,具备了多个父类的特点。
### 十一、多重继承
> Python支持多重继承,一个子类可以有多个直接父类,具备了多个父类的特点。
### 十、重写__str__()方法
> 作用:返回一个对象的描述
### 九、object跟类
> 通过类的方法mro()或者类的属性__mro__可以输出这个类的继承层次结构。
> ==概念==:object类是所有类的父类,因此所有的类都有object类的属性和方法。
> dir()查看对象和属性
- ==zhu'yi
### 八、方法的重写
> 概念:
- ==成员继承==:子类继承了父类除构造方法外所有的成员
- ==方法重写==:子类可以重新定义父类中的方法,这样会覆盖父类的方法,也成为重写。
### 七、继承
> 概念:继承是实现代码复用的重要手段
- 父类
- 子类
> 语法格式: class 子类类名(父类1,父类2)
### 六、面向对象的三大特征
> 封装:隐藏对象的谁能够和实现细节,只对外提供必要的方法
> 继承:继承可以让子类具有父类的特性,提高了代码的重用性
> 多态:多态是指一个方法调用由于对象不同会产生不同的行为。
### 五、@property装饰器
>作用:将方法的调用变成属性的调用。
### 四、私有方法
### 三、私有属性
>私有属性和方法要点
-两个下划线开头的属性是私有的,其他为公共
-类内部可以访问私有属性(方法)
-类外部不能直接访问私有属性(方法)
-类外部可以通过类名访问私有属性
>方法本质也是属性,只不过可以通过()执行
>测试
###一、方法没有重载
>解释:方法的参数没有类型,参数的数量也可以由可变参数控制。
>如果在类体中定义了多个重名的方法,只有最后一个有效
###二、方法的动态性
>Python是动态语言,可以动态的修改添加的方法
15、__call__()方法
1、功能:定义了方法的对象,成为可调用对象,可以像调用函数一样被调用
2、测试
十四、__del__析构函数
1、作用:销毁对象
2、也可以通过del语句删除对象。
3、python会自动提供__del__方法,不需要自定义析构方法。
十一、类属性
1、概念:从属于类对象的属性,也成为类变量。可以被所有实例对象共享。实例在__init__构造函数中,类属性在class下直接添加,无需定义在函数下。
2、示例:
十、类对象
1、class 类名:会创造一个类对象
九、实例方法
1、要定义一个实例方法,第一个参数必须为self,self指当前实例对象
2、调用实例方法时,不需要也不能给self传参,self由解释器自动传参
3、函数和方法的区别:
1)都是用用来完成一个功能的语句块,本质一样
2)方法调用时,通过对象来调用,函数没有这个特点。
3)方法需要传递self,函数不需要
4、dir(object)可以获得对象的所有属性,方法
5、obj.__dict__对象的属性字典。
八、实例属性
1、概念:实例属性是属于实例对象的属性,也成为实例变量。
2、实例方法
七、构造函数
1、对象的组成:id,type,value
2、构造函数用于执行实例对象的初始化工作,即对象创建后,初始化当前对象的属性。
六、类的定义
1、类的结构:属性+方法
属性:数据对应的状态
方法:函数行为对应了行为
五、对象的进化
1、说明:随着编程面临的问题越来越复杂,语言也在进化。从主要处理简单数据开始,随着数据变多进化“数组”,数据类型变复杂,进化出了结构体,处理数据的方式和逻辑变复杂,进化出了对象。
数据:1,2,3
数组:(1,2,3)
结构体:包含了类别
对象
四、面向对象编程
1、面向对象和面向过程的区别
1)面向过程更加关注的是程序逻辑流程
2)面向对象关注的是软件中对象之间的关系,适合大规模的程序
2、面向对象思考方式:
遇到复杂问题,先从问题中找名词,确立类,根据需求确定类的属性和方法,确定类之间的关系。