python-面向对象VS面向过程

接触python久了,我们经常听到这样一句话,就是python中“万物皆对象”。这是因为,python是一门面向对象的编程语言。

那么什么是面向对象呢?这里就需要谈一下面向对象和面向过程之间的区别。


1、面向过程

面下过程比较容易理解,就是遇到一个问题,我们按照正常逻辑开始思考,按照步骤来解决这样一个问题,结果,我们就得到了解决这个问题的一个过程。

例如,小明现在想去北京旅游,我们需要为小明买一张飞机票,那么我们得到的过程是这样的:

打开某网站

输入当前地址和北京

查询机票

输入小明的证件信息

付款

这样我们就帮小明把机票买完了,整个过程就是这样,比较容易思考,编写出来的程序也会整洁明了。

这就是所谓的面向过程,就是按照过程来编写程序。

先来看一下这样做的好处:

  • 将我们的程序分解为一个一个步骤,通过对每个步骤的抽象来完成程序
  • 这种编程方式符号人类的思维,编写起来比较容易

大概也就这些了,那么这么做有什么缺点呢?

如果,小华现在想去上海旅游,又需要给小华买一张高铁票,那我有需要从头再来编写这样一个程序,这时候再来几个人,我就感觉到厌烦了,我就想到能不能用一个模板来解决所有人的车票。这个时候面向对象就横空出世了。

总结一下面向过程的缺点:

  • 这种编写方式往往只能实现一个特定功能
  • 如果需要实现别的功能,复用性往往比较低,而我们想要的是通用的程序

2、面向对象

所谓面向对象的语言,简而言之,就是语言中的所有操作都是通过对象来进行的。

对象,就是一个存储数据的容器。

任何事情都由两部分组成,就是“人”(属性)和行为(方法)。

比方说,就刚才买车票这一件事,我可以给他弄出一个模板来。
这个过程中的属性都有:

  • 小明
  • 小明的证件信息
  • 当前地址和目的地
    行为有:
  • 打开某网址
  • 输入信息
  • 付款
    这样一个模板就这样完成了,之后给所有人买票我都可以用这样一个模板。(注意上述属性和方法没有先后顺序)

总结一下面向对象的好处:

  • 面向对象的编程语言,关注的是对象,不注重过程
  • 面向对象的编程思想,将所有功能统一保存到对应的对象中,要使用某个功能,直接找到对应的对象即可
  • 这种编码方式比较容易阅读,并且易于维护,容易复用。

当然它也是有缺点的,就是编写的过程中不太符合常规的思维,程序写起来比较困难。


总而言之,面向对象是我们的终极目标。

你可能感兴趣的:(python基础,编程语言,python)