Python面向对象(类和对象)

一、面向对象编程

面向对象--Object Oriented Programming,简称oop,是一种程序设计思想。举例说明:比如去买车,需要分别去4S店买车,再去保险公司,再去税务局,最后去交管所上牌,是分别面向的他们每一个。

面向过程——面向过程的思想是把一个项目、一件事情按照一定的顺序,从头到尾一步一步地做下去,先做什么,后做什么,一直到结束。比如说刚刚买车的事情,现实中我们需要分别去到4S店、保险公司、税务局、交管所四个地方,而面向过程呢,就是把他们聚集到一处,我们就把这个地方叫做是买车处,我们买车不需要去到很多地方,只需要到买车处找到一个负责人就可以在这个院子里面办了所有的事情。

二、面向对象的特性

类:class

类,对比现实世界来说就是一个种类,像是一个模型、一个图纸。

一个类即是对一类拥有相同属性的对象的抽象、蓝图、原型。

在类中定义了这些对象的都具备的属性(variables(data))、共同的方法。

对象:object

对象,也就是指模型造出来的具体的东西。

一个对象即是一个类的实例化后实例,一个类必须经过实例化后方可在程序中调用,一个类可以实例化多个对象,每个对象亦可以有不同的属性,就像人类是指所有人,每个人是指具体的对象,人与人之前有共性,亦有不同。

实例化:

初始化一个类,造了一个对象。把一个类变成一个具体的对象的过程,叫做实例化。

封装:

把一些功能的实现细节不对外暴露,类中对数据的赋值、内部调用对外部用户是透明的,这使类变成了一个胶囊或容器,里面包含着类的数据和方法。

比如说造的一个人,你把他身体内部的什么心肝脾肺肾都封装起来了,其他人都看不到,你直接找这个人。

继承:

一个类可以派生出子类,在这个父类里定义的属性、方法自动被子类继承。比如说你继承了你父亲的姓。

python3中多继承都是广度优先,python2中经典类的多继承是深度优先,新式类的多继承是按照广度优先的。

继承是为了代码的重用

多态:

对不同类的对象发出相同的消息将会有不同的行为。比如,你的老板让所有员工在九点钟开始工作, 他只要在九点钟的时候说:“开始工作”即可,而不需要对销售人员说:“开始销售工作”,对技术人员说:“开始技术工作”, 因为“员工”是一个抽象的事物, 只要是员工就可以开始工作,他知道这一点就行了。至于每个员工,当然会各司其职,做各自的工作。

多态就是抽象化的一种体现,把一系列具体事物的共同点抽象出来, 再通过这个抽象的事物, 与不同的具体事物进行对话。

三、类

一些概念:

属性:属性就是类里面的一个变量,有类变量和实例变量,类变量是类在定义的时候就有的,实例变量是在实例化的时候才产生的变量。这个可以理解为,人是一个类,他的名字、年龄、性别就是它的属性。

方法:方法就是类的功能,也就是定义在类里面的函数,它实现了某个功能,比如说人有睡觉的功能。

构造函数:什么是构造函数,就是类在实例化的时候做的某些初始化操作,比如说人,你造一个汽车的时候,它得有颜色、型号等等。

析构函数:析构函数就是这个实例在销毁的时候做的一些操作。

定义类:

定义类使用class关键字,类名一般我们开发的时候首字母要大写。python中有经典类和新式类,他俩在python3中没有区别,在python2中经典类在多继承的时候是深度优先,新式类是广度优先。python3中统一是广度优先,这个后面在说继承的时候会说。

猜你喜欢

转载自www.cnblogs.com/brf-test/p/11845642.html