面向过程编程,重点在于过程(可以理解成how),即以过程为核心,计算机/写代码的人会把精力聚焦在具体的实现过程上,这个过程第一步干什么,第二步干什么,直到最后完成了你的目标。

面向对象编程,重点在于对象(可以理解成who),即以对象为核心,这个对象有什么技能(不止一个技能的),这个对象所拥有的哪些技能够帮你实现你的目标。

前者比较关注怎么做,后者比较关注谁来做。

来看张图片:

图注:知乎大佬的解释

面向对象的基本概念

了解了面向过程和面向对象编程的基本思想以后,我们来介绍面向对象编程中一些基本概念。

类(Class): 用来描述具有相同的属性和方法的对象的集合。其实类的本意就是类别,表示同类别事物(对象)的一个组合,比如说从事数据分析这个岗位的这些人就是一个类,他们有共同的属性(数据分析师&喜欢用数据说话)和共同的方法/技能(写sql、操作excel、写脚本)。

类属性:就是对类的属性做一些设定,比如名字、特征之类的,上面代码中的name和feature就是类data_analyst的属性。

类方法:就是类的一些技能,用def来指定,和定义函数有点类似(注意是类似,还是有些不同的,后面讲),也可以理解成类的对象所拥有的技能。

对象:就是类中的具体一个事物,是关于类而实际存在的一个例子,即实例。比如说众多数据分析师中的小明,就是类data_analyst的一个对象。而小明这个对象具有类data_analyst的所有属性和方法/技能。

实例化:实例化的过程就是类到对象的过程,实例其实就是创建一个实际例子,类的具体对象。

__init__:init是初始化的意思,用在实例化的过程中,当对类进行实例化时(创建一个新的实例),类会自动调用该函数。上面只是创建了小明一个实例,我们再来多创建几个其他的数据分析师(怎么感觉有点不对劲),比如小张、小李。

self:self是init和def方法中的默认的第一个参数,表明实例本身,可以省略不写。这就是类方法和普通函数的一点不同之处。

把上面的基本概念总结一下,就是把具有相同属性和方法的对象聚成一个类,然后在这个类里面去声明一些属性、定义一些方法,最后通过实例化创造几个实例/对象,通过实例化创建的对象就可以去引用类中的每个属性和调用类中的每个方法。

面向对象的编程的好处

前面我们介绍了面向过程的面向对象的基本思想,也介绍了面向对象中的一些基本概念,接下来我们再看看面向对象有什么特别的优点,只有这样意识到做一件事事情的好处,我们才更愿意走出舒适区(毕竟我们已经习惯了面向过程编程的思维),去接受这个新的东西。通过下面这个实例,我们来看一下编程的几个不同发展阶段。

已知每个学生各科分数,求取每个学生的总分,平均分。

最开始的时候我们是这样做的:

先求取student_1的分数情况,

要求student_2和student_3的分数情况,我们可以把student_1的代码复制过来,改一下student就可以。

后来大家发现上面的代码有点冗余,不仅看起来难受,更重要的编写耗费时间也很长,又得让程序员gg多加班两小时,所以聪明的(爱偷懒的)技术大牛就发明了函数这种东西,具体执行如下:

再后来,善于琢磨的程序员gg经过不懈的努力,终于又研究出更加简洁的一种方法,那些无数个加班夜总算没有白加,于是乎就有了本章的内容:

最后

关于面向对象的知识点还有很多,我们本章节就主要讲这么多,让大家对面向对象有个基本认识,能够日常使用就ok,更加深层次的知识还需要大家自行去探索。

End.

作者:张俊红

python面向对象编程的优点-Python面向对象编程相关推荐

  1. python面向对象编程的优点-Python语言有哪些优点?

    2018年主流的十大编程语言中,Python排名第一,被广大使用者誉为"更美好"编程语言.Python语言自身的语言特点,使得他深受开发者的喜爱,那么Python语言到底有哪些优点 ...

  2. python的特点和优点-Python的优点和缺点有哪些?Python语言的特点

    任何一种编程语言,都有其优劣性,Python编程亦如此,以下是对Python优缺点的解析: 先看优点 Python的定位是"优雅"."明确"."简单& ...

  3. python面向对象编程的优点-Python 基础知识----面向对象编程

    一.面向对象编程介绍 面向过程编程: 核心是过程二字,过程指的是解决问题的步骤,即先做什么再干什么然后干什么. 基于该思想编写程序好比在设计一条流水线,是一种机械式的思维方式. 优点:复杂的问题流程化 ...

  4. python面向对象编程的优点-Python面向对象编程——总结面向对象的优点

    Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...

  5. python面向对象编程的优点-Python入门之面向对象编程(一)面向对象概念及优点

    概念 谈到面向对象,很多程序员会抛出三个词:封装.继承和多态:或者说抽象.一切都是对象之类的话,然而这会让初学者更加疑惑.下面我想通过一个小例子来说明一下 面向对象一般是和面向过程做对比的,下面是一个 ...

  6. python面向对象编程的优点-Python面向对象编程 一

    一.类 面向对象是对函数进行分类和封装,其主要目的是提高程序的重复实用性,让开发更方便快捷. 在我们的认知中,我们会根据属性相近的东西归为一类.例如:鱼类,鱼类的共同属性是呼吸,卵生.任何一个鱼都在此 ...

  7. python使用函数的优点-Python递归函数的优缺点

    对于求 n!,你可能会问,为何要用递归?有何优势?答案并不复杂,利用递归可以使算法的逻辑变得非常简单.因为递归过程的每一步用的都是同一个算法,计算机只需要自顶向下不断重复即可. 具体到阶乘的计算,无非 ...

  8. python使用函数的优点-Python用了这么多年,总结出超实用的功能和特点

    在使用Python这么久,时不时就会发现了一些过去不知道的功能和特性.一些可以说是非常有用,但却没有充分利用.本篇文章总结出你应该了解的Python功能特色,希望大家在学习过程中,少走弯路,善用技巧! ...

  9. python使用函数的优点-Python函数的特点

    函数对象 一.函数对象的四大工能 1.引用 def helllo(): x='helllo word' f=func print(f) 2.当作参数传给一个函数 def foo(m): m() foo ...

最新文章

  1. 9、 Struts2验证(声明式验证、自定义验证器)
  2. 用Visual C#打造多页面网页浏览器
  3. nas servers
  4. 强化学习总结(3-4)——无模型的价值函数的预测,蒙特卡洛和TD时序差分方法
  5. 一个反编译工具Reflactor (.NET)
  6. Alone in Office
  7. 轻松查看Internet Explorer缓存文件
  8. [转载]我的WafBypass之道(upload篇)
  9. 消息称苹果斥资2亿美元收购Xnor.ai;华为2000万英镑投资,加速发展HMS手机生态系统;国产SSD将迎来爆发……...
  10. (123)FPGA面试题-介绍低速接口(UART、IIC、SPI),SPI有几根线,每根线的作用?(三)
  11. Linux之软件安装rpm、yum/dnf、源码(安装)
  12. Retrofit的简单封装
  13. 使用python来刷csdn下载积分(一)
  14. JAVA项目在服务器部署过程
  15. MMD动作下载:世界第一公主殿下 World Is Mine Project DIVA
  16. python怎么找出列表中的重复数据_找出python列表中重复项的方法
  17. html转邮件html格式转换,如何把电子邮件格式改成HTML格式
  18. 计算机网络dce是什么意思,DTE与DCE的解释
  19. 企业快速寄件打单教程
  20. 1. Emacs使用本地elpa镜像

热门文章

  1. oracle union 最多_用户来稿:我就是那个在优买计划赚钱最多的男人
  2. 开发日记-20190425 关键词 gradle基础学习 7年之约 启动篇
  3. 查看suse系统版本
  4. springboot和flowable modeler整合
  5. java9新特性-16-Deprecated的相关API
  6. React.js入门笔记
  7. OpenGL_Qt学习笔记之_05(纹理映射)(转)
  8. php5.4 traits
  9. centos下如何停止ping命令
  10. 手脱UPX v0.89.6 - v1.02