Python | 面向对象编程与面向过程编程究竟是个什么鬼?

面向对象编程与面向过程编程

1 前言

相信小伙伴们经常能听到两个高大上的词汇:面向对象编程和面向过程编程。纳尼,不就编程吗?为啥还分的这么细呢?还面向对象?面向过程?究竟是个啥子意思?下面就跟随小编的视角一起来看看这对双胞胎兄弟究竟是个什么鬼!

2 通俗定义

如果把面向对象和面向过程比喻成一对双胞胎兄弟的话,那么这两人的性格那就完全不同了,有什么不同呢?

  • 面向对象编程(哥哥):非常聪明,希望能一劳永逸!追求极致的简单,效率!
  • 面向过程编程(弟弟):踏实勤劳肯干!一步一步的做事情!事必躬亲!(咋想到了诸葛亮…)

从上面的描述,小伙伴可能看的一头雾水,下面就举个生动的例子来帮助大家更好的解释吧!

假如现在妈妈安排任务给这对兄弟:“你们俩下午把房间打扫干净哦!”这时候,兄弟俩针对如何打扫房间就会有争议了,由于他们性格不同,故采取的策略也不同!究竟有什么不同呢?
在这里插入图片描述
1、面对对象编程:

  • 面向对象就是将编程当成是一个事物,对外界来说,事物是直接使用的,不用去管他内部的情况
  • 面向对象就好像你只要通知扫地机器人打扫房间,即发一个消息就可以了,至于机器人怎样打扫,是不用知道的。
  • 代码示例1:这里创建的扫地机器人就是Lee!
class Clean(object):
    def __init__(self, step_1, step_2, step_3):
        self.step_1 = '擦地板'
        self.step_2 = '擦窗户'
        self.step_3 = '整理空间'
        
    def clean(self):
        print('%s, %s, %s' % (self.step_1, self.step_2, self.step_3))
# 创建实例
Lee = Clean(1,2,3)
Lee
<__main__.Clean at 0x111c960b8>
# 调用函数 clean
print('开始打扫')
Lee.clean()
print('打扫结束!嗨起来!')
开始打扫
擦地板, 擦窗户, 整理空间
打扫结束!嗨起来!

代码示例2:查询学生的成绩!

class Student(object):
    def __init__(self, name, score):
        self.name = name
        self.score = score
        
    def print_score(self):
        print('%s, %s' % (self.name, self.score))
# 创建实例Lee
Lee = Student('Kun Lee', 100)
print('开始查询')
Lee.print_score()
print('查询结束')
开始查询
Kun Lee, 100
查询结束

2、面向过程编程

  • 面向过程就是将编程当成是做一件事,要按步骤完成,每一步就是一个过程。比如打扫房间这件事,需要先擦地板,然后擦窗户,最后整理空间。
  • 面向过程就好像自己去打扫房间,所以要讲究步骤
  • 代码示例:这里就需要依次执行3个函数!
def step_1():
    print('擦地板')

def step_2():
    print('擦窗户')
    
def step_3():
    print('整理空间')
# 依次调用上述函数
print('开始打扫')
step_1()
step_2()
step_3()
print('打扫结束!嗨起来!')
开始打扫
擦地板
擦窗户
整理空间
打扫结束!嗨起来!

代码示例2:

面向过程可以用一个字典来存储学生的成绩:

std1 = { 'name': 'Kun Lee', 'score': 100 }
std2 = { 'name': 'Bob', 'score': 81 }

创建查询成绩函数:

def print_score(std):
    print('%s: %s' % (std['name'], std['score']))

然后查询即可!

3 官方定义

  • 面向对象的程序设计:

    • 计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。
    • 总的来说面向对象是将事物高度抽象化,面向对象必须先建立抽象模型,之后直接使用模型就行了
    • 面向对象的抽象程度比函数要高,因为一个Class既包含数据,又包含操作数据的方法
  • 面向过程的程序设计:

    • 计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。
    • 面向过程是一种自顶向下的编程

参考

猜你喜欢

转载自blog.csdn.net/qq_27782503/article/details/93722779