Python 面向对象和面向过程对比
Posted 缥缈映苍穹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 面向对象和面向过程对比相关的知识,希望对你有一定的参考价值。
# 大象装冰箱 # 脚本, 此时代码是最简单的. 不需要构思整个程序的概况 print("开门") print("装大象") print("关门") # 函数式编程. 比脚本麻烦. 对功能有了概况. def kai(): print(‘开门‘) def zhuang(): print("装大象") def guan(): print(‘关门‘) kai() zhuang() guan() # 面向对象编程, 对整个系统进行分析. 分析出需要哪些对象. 然后给对象进行归类. # 先写类. 然后使用类创建对象. 最后用对象去执行相关的操作 class Elephant: def __init__(self): print("创建了一个大象") def kai(self): print("开门") def zuan(self): print("大象进冰箱") def guan(self): print("大象把门带上") # dx = Elephant() dx.kai() dx.zuan() dx.guan() # 第一回合 # 脚本胜 # 函数侧重的是功能 # 面向对象侧重的是 归类 # PK2 # # 小猪佩奇. 使用嘴巴嘟嘟技能攻击 超人 # # 小猪佩奇. 使用嘴巴嘟嘟技能攻击 蝙蝠侠 # # 小猪佩奇. 使用嘴巴嘟嘟技能攻击 蜘蛛侠 # # # 面向过程: 代码非常的冗余. 尤其是参数 def fight_superman(name, jineng): print("%s使用%s攻击超人" % (name, jineng)) def fight_batman(name, jineng): print("%s使用%s攻击蝙蝠侠" % (name, jineng)) def fight_spiderman(name, jineng): print("%s使用%s攻击蜘蛛侠" % (name, jineng)) # # fight_superman(‘小猪佩奇‘, "嘴巴嘟嘟") fight_batman(‘小猪佩奇‘, "嘴巴嘟嘟") fight_spiderman(‘小猪佩奇‘, "嘴巴嘟嘟") # # class Pig: def __init__(self, name, jineng): self.name = name self.jineng = jineng def fight_superman(self): print("%s使用%s攻击超人" % (self.name, self.jineng)) def fight_batman(self): print("%s使用%s攻击蝙蝠侠" % (self.name, self.jineng)) def fight_spiderman(self): print("%s使用%s攻击蜘蛛侠" % (self.name, self.jineng)) # # pg = Pig("小猪佩奇", "嘴巴嘟嘟") # # 不需要向原来一样传递一样的参数了 # # 面向对象的程序: 结果相对清晰. 缺点: 代码量比原来大, 上手太难 pg.fight_batman() pg.fight_spiderman() pg.fight_superman() # 如果写一个定时任务, 半夜12点. 给老板发送财务报表(一张图) def send_email(address, name, title, content): print("发送邮件") def send_wechat(wechat_num, name, title, content): print("发送微信") def send_chat(wechat_num, name, title, content): print("发送短信") def send_dd(wechat_num, name, title, content): print("发送钉钉") def send_oa(wechat_num, name, title, content): print("发送OA") class Messager: def __init__(self, name, title, content): self.name = name self.title = title self.content = content def send_email(self, address): print("发送邮件") def send_wechat(self, wechat_num): print("发送微信") def send_chat(self, phone_num): print("发送短信") def send_dd(self, dd_num): print("发送钉钉") def send_oa(self, oa_num): print("发送OA") # 用面向对象就比面向过程稍微好一些. # 可维护性比原来好 # python同时支持面向对象和面向过程: # 面向过程: 应用程序相对比较小. 不需要大规模的设计 # 面向对象: 程序非常大. 项目管理 维护成本很高. 此时更适合用面向对象(结构) # java : 纯面向对象 => 可以把一个微型项目. 做成巨型项目
以上是关于Python 面向对象和面向过程对比的主要内容,如果未能解决你的问题,请参考以下文章