码迷,mamicode.com
首页 > 编程语言 > 详细

Python 面向对象和面向过程对比

时间:2018-12-17 22:01:35      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:ESS   可维护性   创建对象   sage   div   def   int   操作   结果   

# 大象装冰箱
# 脚本, 此时代码是最简单的.  不需要构思整个程序的概况
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 面向对象和面向过程对比

标签:ESS   可维护性   创建对象   sage   div   def   int   操作   结果   

原文地址:https://www.cnblogs.com/demons97/p/10134134.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!