面向过程编程,重点在于过程(可以理解成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. Keras,今天7岁啦!
  2. Android运行时异常“Binary XML file line # : Error inflat
  3. 用JQUERY实现给当前页面导航一个CSS
  4. 2012 winter training @HIT Day 2 解题报告
  5. 成功转型机器学习,多年的经验分享
  6. ArcGIS 字段计算器取前几位和替换操作
  7. ADO.NET访问数据集的表、行和列
  8. 手机 测试php代码大全,VIVO手机测试指令代码大全
  9. 深圳最牛街道办:腾讯华为设总部,百家上市公司年营收超2万亿
  10. 实验二 分析1996~2015年人口数据各个特征的分布与分散状况
  11. 错别字检测、在线文本纠错-爱校对
  12. 新域名 @live.com 和 @windowslive.com 即将上线 (from cnbeta)
  13. Appium工作日记:Message: An element could not be located on the page using the given search parameters.
  14. 微信 iPad 835协议
  15. 学计算机电脑厚度23mm,轻薄机身兼具生产力!适合专业人士的轻薄笔记本电脑,了解下?...
  16. 快速傅里叶变换 (FFT)基础
  17. 397高校毕业设计选题
  18. CSS带箭头的提示框实现
  19. c语言随机抽取扑克问题,关于扑克牌的问题
  20. GeoTools源码解读 - XML处理

热门文章

  1. 网上服务器租借要多少钱_台湾租借日本服装多少钱-北京和益文化传媒有限公司...
  2. JS垃圾回收——和其他语言一样,JavaScript 的 GC 策略也无法避免一个问题:GC 时,停止响应其他操作,这是为了安全考虑...
  3. 图解Skip List——本质是空间换时间的数据结构,在lucene的倒排列表,bigtable,hbase,cassandra的memtable,redis中sorted set中均用到...
  4. elasticsearch 路由文档到分片
  5. pyspark使用ipython
  6. 博主谈:聊聊我们说的网站优化
  7. Bash: Removing leading zeroes from a variable
  8. 打开eclipse出现an error has occurred.see the loh file
  9. Missing artifact jdk.tools:jdk.tools:jar:1.6
  10. STL的erase()陷阱-迭代器失效总结