首页 > 编程语言 >Python学习笔记--面向对象--基础

Python学习笔记--面向对象--基础

时间:2023-01-20 11:04:00浏览次数:44  
标签:容器 冰箱 面向对象 -- 盛放 扩展性 Python 数据

1.面向对象和面向过程的区别是?

  • 面向过程:

    • 把问题,拆解性小的流程。

    • 优点是:把复杂问题,流程化后简单了。

    • 缺点是:扩展性差。
  • 面向对象:

    • 优点是:扩展性强。

    • 缺点是:将编程的复杂性变大。

 2.面向对象编程,是什么?

  • 核心是对象二字,那什么是对象?

  • 对象是一个概念

    • 是一个国外翻译过来的概念。
  • 对象是一个容器

    • 函数是一个容器,盛放功能的。
    • 对象也是一种容器,盛放数据+功能的。
  • 基于面向对象的编程思想,就是创造一个个容器,来梳理代码的。

    • 同样,面向过程也是创造一个个函数,来梳理代码的。

3.面向对象可以比喻房子里的什么东西,来帮助理解?

  • 面向过程(功能)

    • 散落的木板 ==》 书架

    • 冰箱零件 ==》 冰箱
  • 面向对象(数据+功能)

    • 书(数据)
      • 书在地上,在厕所,在厨房 ==》书在书架上。【数据+功能】
    • 大蒜(数据)
      • 大蒜在地上,在卧室... ==》大蒜在冰箱里。【数据+功能】
    • 韭菜(数据)
      • 韭菜在地上,在客厅... ==》 韭菜在冰箱里。【数据+功能】
  • 面向对象是一种归类。

    • 原则是:把相关的放在一起。
      • 比如,厨房这个容器。(对象)
        • 盛放了数据【葱,姜,蒜,鸡蛋,韭菜,调味料】
        • 盛放了功能【冰箱,电饭锅,微波炉】
  • 冰箱这个容器到底是函数还是对象?

    • 冰箱没有放任何数据的话

      • 是一个函数。
      • 它就是由一堆零件组成的。
    • 冰箱盛放了数据的话

      • 是一个对象。
      • 它由零件组成的功能+盛放的数据【葱,姜,蒜,韭菜,黄瓜...】
  • 如何区分,容器是函数还是对象?

    • 关键在于是否承载了数据。

 

4.谈谈我理解的面向对象。

  • 优点:扩展性好。
  • 缺点,需要进一步整理,复杂度高了。
    • 比如,我收拾房间。我要把书放在书架上。
    • 我首先要买个书架子,快递发给我一套木板,一堆螺丝钉,一把螺丝刀。
    • 我把这些东西组装起来,形成一个书架【功能】,功能性就是实现了。也就是函数实现了。
    • 现在又要把,书放到书架上,我这个书架有5层,我书有人文的,自然的,历史的,IT的。
    • 还有书看过的,没看过的,那些我判断是使用频率高的书籍,哪些是频率低的,把频率高的放在中间3层,4层,频率低的放在1层2层5层。
    • 我根据这些原则,把这个书【数据】放在一起。这个过程,就完成了对象的概念。同样,我相比起函数,付出了更多的时间和精力,复杂性相比之前的函数,确实提高。同样的好处是,我更方便使用这个书架,每个书的位置,都有了一定的原则(索引位置)。找起来更方便了。 

5.最能体现面向对象的扩展性强的是?

  • 封装。

    • 《封装》最能体现,但像 《继承》,反而与扩展性强是相违背的。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考资料:

 

标签:容器,冰箱,面向对象,--,盛放,扩展性,Python,数据
From: https://www.cnblogs.com/liqi175/p/17062446.html

相关文章

  • 赛意SMOM和金蝶云星空单据接口对接
    赛意SMOM和金蝶云星空单据接口对接数据源系统:金蝶云星空金蝶K/3Cloud在总结百万家客户管理最佳实践的基础上,提供了标准的管理模式;通过标准的业务架构:多会计准则、多币......
  • 【DFS】LeetCode 101. 对称二叉树
    题目链接101.对称二叉树思路DFS递归解决代码classSolution{publicbooleanisSymmetric(TreeNoderoot){if(root==null){returnt......
  • DBNet源码详解
    参考项目:https://github.com/WenmuZhou/DBNet.pytorch标签制作制作thresholdmap标签make_border_map.py程序入口if__name__=='__main__'if__name__=='__main......
  • 阿里宜搭和金蝶云星空接口打通对接实战
    数据源系统:阿里宜搭宜搭是阿里巴巴自研的基于钉钉和阿里云的低代码平台,可让用户通过简单的拖拽、配置即可完成应用搭建,为每个组织提供低门槛、高效率的数字化业务应用......
  • JavaScript 函数所能传递的最大参数
    取决于实现,取决于浏览器和操作系统标准没有规定(65535一般是有的)来源:https://stackoverflow.com/questions/22747068/is-there-a-max-number-of-arguments-javascript-fun......
  • 用友U8和旺店通·企业奇门单据接口对接
    用友U8和旺店通·企业奇门单据接口对接​​​​对接系统旺店通·企业奇门旺店通是北京掌上先机网络科技有限公司旗下品牌,国内的零售云服务提供商,基于云计算SaaS服务模式,以体......
  • 9个优秀的 VUE 开源项目 转载
    Vue结合了React和Angular的优点,并且有着团结、活跃且庞大的社区,可以帮助解决开发中遇到的问题。开源社区不断提出解决问题的新方法。工具和库的数量也贡献量不断的增......
  • linux docker存储空间迁移
    1.查看docker镜像存放目录空间大小du-hs/var/lib/docker/2.停止docker服务。systemctlstopdocker3.查看磁盘容量大的空间,且在上面创建新的docker目录。df-......
  • 阿里宜搭和金蝶云星空接口打通对接实战
    ​​​​数据源系统:阿里宜搭宜搭是阿里巴巴自研的基于钉钉和阿里云的低代码平台,可让用户通过简单的拖拽、配置即可完成应用搭建,为每个组织提供低门槛、高效率的数字化业务......
  • 旺店通·企业奇门和用友BIP接口打通对接实战
    旺店通·企业奇门和用友BIP接口打通对接实战接通系统:旺店通·企业奇门旺店通是北京掌上先机网络科技有限公司旗下品牌,国内的零售云服务提供商,基于云计算SaaS服务模式,以......