Python自学笔记(6)--面向对象编程

面向对象内容不多,也相对简单,但很重要,学透学懂很关键。

面向对象

对象:用户所创建的 特征:动作或功能放在一起就是一个对象

对象如何创建?在python中对象是通过类来创建的,类是通过对象的描述

Class
Car:

Def fly(self):

Pass

类与对象的关系:

类是类型,类别,对事物的描述

对象是个体
具体的,某一个东西或者对象

创建对象:

类名() 实例化

三大特征:

1, 封装:将数据或者方法封装在一个类中

2, 继承:子类可以自动调用父类除了私有方法中的全部内容,包括抽象方法

3, 多态:同一个对象,多种形态

成员:

1. 变量

实例变量:对象拥有的东西

类变量:类拥有的东西,多个对象共享的。最好就是类名去访问类变量。对象可以访问,但不能修改。

2.方法:

实例方法: def 方法(self): pass

静态方法:@staticmethod def 方法(self) 最好类名去访问

类方法:@classmethod def 方法(cls)

3.属性

用方法来描述属性信息

类与类之间的关系

依赖关系: 关系最弱

在方法的参数中传递其他类的对象

关联关系:组合,聚合 关系很紧密

把一个对象装在自己身上

继承关系:实现关系

class 子类(父类):

      pass

父类:基类,超类

子类:派生类

实现关系:

      父类:抽象类。如果父类是抽象方法,父类被称为“接口”

      子类:必须对父类的抽象方法重写

约束:

      父类对子类的约束。子类必须重写的内容

抛异常:raise NotImplementError

抽象类:

From abc import ABCMeta,abcstractmethod

元类必须设为ABCMeta,Metaclass = ABCMeta

这个类必须可以重写抽象方法。@abstractmethod

类中包括抽象方法。那么这个类一定是抽象类。抽象类一般不创建对象

Mro:

经典类

采用的是深度优先遍历。

新式类

如果没有菱形,就是深度优先。

如果是简单菱形继承,把头干掉。使用深度优先,最后是头。

如果是复杂的菱形采用C3算法。先找到每个类的继承关系,先拆分,然后再合并。

super:

     执行MRO列表中的下一个类中的方法。

super().方法(
) super(类名,self).方法()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值