千锋教育-做有情怀、有良心、有品质的职业教育机构

Python之什么是面向对象?

来源:千锋教育
发布时间:2023-11-07 12:35:40
分享

OOP(ObjectOrientedPrograming)编程是利用“类”和“对象”来创建各种模型来实现对真实世界的描述。

怎么说呢?

核心是“对象”二字,要理解对象为何物,必须把自己当成上帝,在上帝眼里,世间存在的万物皆为对象,不存在的也可以创造出来。程序员基于面向对象设计程序就好比如来设计西游记,如来要解决的问题是把经书传给东土大唐,如来并没有考虑问题的解决流程,而是设计出了负责取经的师傅四人:唐僧,沙和尚,猪八戒,孙悟空,负责骚扰的一群妖魔鬼怪,以及负责保驾护航的一众神仙,这些全都是对象,然后取经开始,就是师徒四人与妖魔鬼怪神仙交互着直到完成取经任务。所以说基于面向对象设计程序就好比在创造一个世界,世界是由一个个对象组成,而你就是这个世界的上帝。

我们从西游记中的任何一个人物对象都不难总结出:对象是特征与技能的结合体。比如孙悟空的特征是:毛脸雷公嘴,技能是:七十二变、火眼金睛等。

与面向过程机械式的思维方式形成鲜明对比,面向对象更加注重对现实世界而非流程的模拟,是一种“上帝式”的思维方式。

面向过程==个人视角

我要去做大保健,我只需考虑,我有没有钱,去哪家店,怎么去,做什么价位的就可以,

你的每一步都要通过程序定义出来,写死了,在这个程序里,你只被设定了去做大保健的功能,

你说中途我想去个ktv,那可能会导致整个程序的逻辑都得更改。用面向过程的方式写代码,

那你care的就是整个事情的执行过程

面向对象==上帝视角

如果你是上帝,你现在要创世纪,把这么多人、动物、山河造出来,上帝光靠自己干,

一个一个的造人,多累呀,让你干这个活,你肯定是先造模子,一个男人模子,

一个女人模子,剩下的就一个个复制就行啦。这个模子的作用是什么?

模子定义了人这个物种所具备的所有特征\(或者说,我们把具备这些特征的个体归为人类\)。

这个世界上所有的东西都是你定义的,你需要用最高效的方式去造世界,

最高效的方式就是,先把世界按物种、样貌、有无生命等各种维度分类,

然后给每类东西建模型,再让其在不脱离你基本横型定义的框架下,

自我繁衍(世界要多姿多彩,所以即使是同一物种,也要有些不一样)

以上内容为大家介绍了Python之什么是面向对象?,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • Python 数据结构 数据结构:通过某种方式组织在一起的数据元素的集合。python中最基本的数据结构是序列(sequence),序列中每个元素被分配一个序号————即元素的位置,也称其为索引;python包含6种内建序列
  • Python 运算符 算术运算符:+,-,*,/,%,**,//赋值运算符:=,+=,-=,*=,/=,%=,**=比较运算符:==,!=,>,=,and>or#逻辑运算符'''以上内容为大家介绍了
  • Python编程进阶,常用八大技巧! 整理字符串输入整理用户输入的问题在编程过程中极为常见。通常情况下,将字符转换为小写或大写就够了,有时你可以使用正则表达式模块「Regex」完成这项工作。但是如果问题很复杂,可能有更好的方法来解决:us
  • BP神经网络与Python 人工神经网络是一种经典的机器学习模型,随着深度学习的发展神经网络模型日益完善.联想大家熟悉的回归问题,神经网络模型实际上是根据训练样本创造出一个多维输入多维输出的函数,并使用该函数进行预测,网络的训练
  • Python实现BP神经网络 首先实现几个工具函数:defrand(a,b):return(b-a)*random.random()+adefmake_matrix(m,n,fill=0.0):#创造一个指定大小的矩阵mat=[]
  • Python NumPy NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy内部解除了CPython的GIL(全局解释器锁),运行效率极好,是大量