面向过程 和 面向对象:
1) 面向过程
1把完成某一个需求的 所有步骤 从头到尾 逐步实现
2根据开发需求,将某些 功能独立 的代码 封装 成一个又一个 函数
3最后完成的代码,就是顺序地调用 不同的函数
特点:
1注重 步骤与过程,不注重职责分工
2如果需求复杂,代码会变得很复杂
3开发复杂项目,没有固定的套路,开发难度大
- 面向对象
相比较函数,面向对象 是 更大 的 封装,根据 职责 在 一个对象中 封装 多个方法
1在完成某一个需求前,首先确定 职责 —— 要做的事情(方法)
2根据 职责 确定不同的 对象,在 对象 内部封装不同的 方法(多个)
3最后完成的代码,就是顺序地让 不同的对象 调用 不同的方法
特点:
1注重 对象和职责,不同的对象承担不同的职责
2更加适合应对复杂的需求变化,是专门应对复杂项目开发,提供的固定套路
3需要在面向过程基础上,再学习一些面向对象的语法.
一.如何定义一个类
在进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法。
类是对现实世界中一些事物的封装,定义一个类可以采用下面的方式来定义:
例如:
1.class className:
2.block
注意类名后面有个冒号,在block块里面就可以定义属性和方法了。当一个类定义完之后,就产生了一个类对象。类对象支持两种操作:引用和实例化。引用操作是通过类对象去调用类中的属性或者方法,而实例化是产生出一个类对象的实例,称作实例对象。比如定义了一个people类:
1.class people:
2.name = ‘jack’
3.def printName(self):
4. print (self.name)
5. people类定义完成之后就产生了一个全局的类对象,可以通过类对象来访问类中的属性和方法了。当通过people.name(至于为什么可以直接这样访问属性后面再解释,这里只要理解类对象这个概念就行了)来访问时,people.name中的people称为类对象,这点和C++中的有所不同。当然还可以进行实例化操作,p=people( ),这样就产生了一个people的实例对象,此时也可以通过实例对象p来访问属性或者方法了(p.name).
理解了类、类对象和实例对象的区别之后,我们来了解一下Python中属性、方法和函数的区别。
在上面代码中注释的很清楚了,name是一个属性,printName( )是一个方法,与某个对象进行绑定的函数称作为方法。一般在类里面定义的函数与类对象或者实例对象绑定了,所以称作为方法;而在类外定义的函数一般没有同对象进行绑定,就称为函数。