python面向对象答辩_深圳民治中心ID1903龙圣面向对象答辩

深圳民治中心ID1903龙圣面向对象答辩

面向对象,By:龙圣,基本理论,什么是对象 万物皆对象 对象是具体的物体 拥有属性 拥有行为 把很多零散的东西封装成为一个整体 举例 王小二 属性(姓名,年龄,身高,体重,.) 行为(走路,吃饭,放羊,.,基本理论,python中的体现 python是一门特别彻底面向对象编程(OOP)的语言 其它语言 基本数据类型(int,float,bool,.) 对象类型(string,Array,.) Python 对象类型(int,float,bool,list,.,面向过程&面向对象,都是解决问题的思路(思想) 面向过程 在解决问题的时候,关注的是解决问题的每一个过程(步骤) 面向对象 在解决问题的时候,关注的是解决问题所需要的对象 举例(我要吃蛋炒饭) 面向过程 面向对象 我 我 放入鸡蛋 对象(具有做蛋炒饭的能力) 加入隔夜饭 放入配料 餐厅 身边的大厨 翻炒 撒上葱花,对比,面向对象和面向过程都是解决问题的一种方式(思想) 面向对象的本身是对面向过程的封装 面向过程编程最重要的是什么? 按照步骤划分 把一个任务,分解成具体的每一个步骤 面向对象编程最重要的是说是什么? 按照对象进行划分 找到对象,确定对象的属性和行为(分配职责) 面向对象和面向过程各自优缺点 面向过程 优势:高内聚-模块内各个元素彼此结合的紧密程度高 低耦合-各模块间相互联系紧密程度低 逻辑清晰-由上至下的结构化编程,适用于做效果功能类(一个具体的函数,对比,劣势: 不符合人的思维习惯(人需要的是具体(对象)事物,而不关心怎么做出来的) 复用性低(有大量重复同类功能的代码块) 维护困难(牵一发而动全身) 很难编写大型项目,类库 面向对象 优势: 复用性和灵活性高(需要什么import什么,或作为参数、数据传入其他对象) 利于维护、扩展(隔离了客户端与功能实现) 开发效率高(并行开发,负责不同的逻辑块) 符合人的常规思考(对象与对象之间的交互) 劣势:性能较面向过程要差(每次的实例化,都占用空间,三大特征,封装,多态,继承,语 言 特 性,类 对象,提供,设计,封装,概念 将一些属性和相关方法封装在一个对象中,对外隐藏内部具体实现细节(行为上看)。 内部的实现,外界不需要关心 外界只需要根据内部提供的接口去使用就可以 比如:电脑主机 好处 1.使用起来更加方便 因为已经把很多相关的功能封装成一个整体,类似于向外界提供一个工具箱,针对于不同的场景,使用不用的工具箱即可 2.保证数据的安全(数据上看) 针对于安全级别高的数据,可以设置为私有 可以控制数据为只读,外界无法修改 也可以拦截数据的写操作,进行数据检验和过滤 3.利于代码维护 如果后期功能代码需要维护,则直接修改类内部代码即可,只要保证接口名称不变,而客户端不需要做任何代码上的修改 4.模块化编程(设计上看) 分而治之,封装变化,继承,概念 现实中的继承 子女继承父母的“财产资源” 编程中的”继承“ 一个类“拥有”另外一个类的“资源”的方式之一 “拥有”:并不是资源的复制,变成双份资源,而是资源的“使用权” “资源”:指非私有的属性和方法 举个栗子 Dog类继承自Animal类-name,age,weight. and eat,run,shout 目的 提高对象之间的相互联系程度 使得程序具有层次感 提高软件的可重用性、扩充性 隔离客户端与具体实现,继承,分类 单继承 多继承 继承下的影响 资源的继承 在python中,继承是指资源的使用权(除了私有化的成员) 资源的使用 MRO(方法解析顺序)-python3.x版本使用C3算法 资源的覆盖 扩展重写-包括属性和方法 资源的累加 在一个类的基础之上,增加一些特有的资源,多态,概念 一个类所延伸出来的多种形态 调用时的多种形态-相同方法有不同的具体实现效果 多态在python中的体现 鸭子类型(ducktyping) 鸭子类型是动态类型的一种风格 当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子 在鸭子类型中,关注的不是对象的类型本身,而是它是如何使用的(行为和属性) 所以在python中没有真正意义上的多态,六大原则,开闭原则,单一职责,依赖倒置,组合复用,李氏替换,迪米特法则,类,最重要的一点: 以上纯属个人瞎想,仅供参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值