面向过程与面向对象

面向过程与面向对象

 

面向过程

  面向过程是一种思想,可不是一门技术

  面向过程的概念

    面向过程核心是过程二字

      解决问题的流程     

        即先干什么,在干什么,最后干什么  即面向过程编程就好比在设计一条产品流水线

  举例

    1. 洗衣服

    2. 把大象放冰箱中需要几步?

      '''
      1. 把冰箱门打开
      2. 把大象放进去
      3. 关上冰箱门
      '''   

    3. 流水线生产饮料

 

  优缺点  

    优点:

      复杂的问题流程化,进而简单化

    缺点:

      牵一发而动全身,扩展性差,可维护性差

    应用场景:

      对扩展性要求不高的地方, eg:安装包的使用

   

  实例

    注册的功能

      1. 用户输入用户名和密码
      2. 验证参数
      3. 写入文件,注册成功
    

# 用户注册功能
1.获取用户名和密码
2.组织成固定的格式
3.文件操作写入文件

def get_info():
    username = input('username>>>:').strip()
    password = input('password>>>:').strip()
    if len(username) == 0 or len(password) == 0:
        print('用户名或密码不能为空')
        return
    user_idf = {
        '1':'admin',
        '2':'user',
    }
    print(user_idf)
    choice = input('请选择您的身份>>>:').strip()
    if choice in user_idf:
        id = user_idf.get(choice)
        return deal_data(username, password,id)
    else:
        print('输入不合法')
        return

def deal_data(username,password,id):
    data = '%s|%s|%s\n'%(username,password,id)
    return save_data(data)

def save_data(data):
    with open(r'userinfo','a',encoding='utf8') as f:
        f.write(data)
    print('注册成功')


get_info()

 

 

面向对象

 

  面向对象的概念

    面向对象核心是对象二字

 

  什么是对象?

    1. 程序中:

      函数:盛放数据的容器

      对象:盛放数据和函数的容器

    2. 现实生活中:

      一切皆对象

      对象:特征与节能的结合体

 

  优缺点

    优点:

      扩展性强,可维护性强

    缺点:

      编程复杂度高

    应用场景:

      对扩展性要求较高的地方。 eg:微信,qq

 

  实例

    以学生选课系统为例

# 版本3:

def choose_course(stu_dict, course):
    stu_dict['course'].append(course)
    print('%s选课成功 %s' % (stu_dict['name'], stu_dict['course']))


stu1 = {
    'name': 'jason',
    'age': 18,
    'gender': 'male',
    'course': [],
    'choose_course': choose_course
}

stu2 = {
    'name': 'ly',
    'age': 18,
    'gender': 'male',
    'course': [],
    'choose_course': choose_course
}

stu1['choose_course'](stu1, 'python')
stu2['choose_course'](stu2, 'python')

 

 

 

 

待续

 

posted @ 2021-12-02 16:48  Snails蜗牛  阅读(49)  评论(0编辑  收藏  举报