面向过程与面向对象
面向过程与面向对象
举例
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')
待续