【python】面向对象 vs 面向过程

1,基本理论

1,什么是对象

a,在python中,一切皆对象

b,在实际生活,对象是一个具体的物体,这个物体拥有属性和行为

  • 举例:王二小
  • 属性:姓名 年龄 性别
  • 行为:走路 吃饭 睡觉

c,python中的体现

python是一门特别彻底的面向对象编程(OOP)的语言,在python中,也就是一切皆对象

解释:

在python中,0、0.1、True、[1,2,3]等都是对象,而它们对应的Int类型 Float类型 Bool类型 list类型都是对象类型

2,面向过程&面向对象

1,共同点

都是解决问题的一种思路

2,面向过程

在解决问题的时候,把解决问题的步骤拆解,关注的是解决问题的每一个过程(步骤)
但是随着程序的增加,过程变得越来越复杂,变的不容易维护,一旦过程需要调整,修改十分麻烦,甚至很多代码都要重写

3,面向对象

在解决问题的时候,关注的是解决问题所需要的对象,面向对象本身是对面向过程的封装(实际步骤并没有减少,本质是把拆解的步骤根据不同的功能特性区分开,然后根据功能特性去找不同对象(的方法,确定属性和行为)解决

4,例:针对做好饭然后洗碗

面向过程:

洗菜->点火->放菜->翻炒->称出->放水->倒洗洁精->开始刷->摆放好

面向对象:

你可以去找一个对象A,这个对象A有两个技能,分别是做饭和洗碗,所以就可以组合成:

  • 对象A:(技能1)做饭->(技能2)洗碗

又可以拆分成:

  • 对象A:洗菜->自动炒菜机->称出->放水->自动洗碗机->摆放好

也就是说,对象A又可以把点火->放菜->翻炒这三个步骤利用自动炒菜机完成
把 倒洗洁精->开始刷 这两个步骤利用自动洗碗机完成

总结:

你可以把任务分给对象A去操作,对象A有2个技能,对象A也可以分解任务,分别交给自动炒菜机和自动洗碗机去操作,与面向过程不同的是,面向对象只需要去找到对象去解决对应的问题即可(类似包工头)

3,面向过程->面向对象思想转变

1,列举出任务具体的实现步骤

2,试图分离这些实现步骤中的功能代码块

3,将这些功能代码,划分到某一个对象中

:把点火->放菜->翻炒这几个步骤(功能)划分到自动炒菜机中(对象)去

4,根据这个对象以及对应的行为,抽象出对应的类

:那自动炒菜机怎么来的,是厂家生产的,需要确定出厂时的规格比如长宽高、重量(属性),以及比如点火、放菜、翻炒等的能力(行为),这些都是一开始设计好的,设计好原型之后才能和根据设计图纸去创造这个自动洗碗机
这里也是一样的,把功能(点火、放菜、翻炒等)划分到对象(自动炒菜机)中了,接下来需要抽象对象,来找出这个对象所具备的属性和行为,这就是设计类的过程

本文利用现实生活中的实例,刨析面向对象 & 面向过程的共同和不同点,适合小白阅读,整理不易,如有收货,请点赞,谢谢

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值