001---面向对象和面向过程的区别
其他
2019-01-25 00:58:03
阅读次数: 0
面向对象和面向过程的区别
- 面向过程
- 概念:核心是'过程',指解决问题的步骤。先干什么再干什么,基于面向过程设计程序就好比在设计一条流水线,是一种机械式的思维方式。
- 优点:复杂的问题流程化,进而简单化。
- 缺点:可扩展性差。中间某个环节出了问题,影响全局,牵一发而动全身。
- 应用场景:适用于一旦实现功能就很少改动的场景。比如:简单的脚步和一些一次性任务、Linux内核、git、Apache HTTP Server等。
- 代码示例:
import json
import re
# 注册
def interactive():
name = input('用户名:').strip()
pwd = input('密码:').strip()
email = input('邮箱:').strip()
return {
"name": name,
"pwd": pwd,
"email": email
}
# 检测数据
def check(user_info):
is_valid = True
if len(user_info['name']) == 0:
print('用户名不能为空')
is_valid = False
if len(user_info['pwd']) < 6:
print('密码不能小于6位')
is_valid = False
if not re.search(r'@.*?\.com$', user_info['email']):
print('邮箱格式不合法')
is_valid = False
return {
'is_valid': is_valid,
'user_info': user_info
}
def register(check_info):
if check_info['is_valid']:
with open('db.json', 'w', encoding='utf-8') as f:
json.dump(check_info['user_info'], f)
if __name__ == '__main__':
user_info = interactive()
check_info = check(user_info)
register(check_info)
- 面向对象
- 概念:核心是'对象',站在上帝的角度,万物皆对象。把我们人类当作类,每个人就是一个对象,每个对象都有姓名、年龄、身高和体重等特征。每个对象都有走路、睡觉、说话等行为,总结来说:对象是特征和技能的结合体。
- 优点:可扩展性强
- 缺点:编程复杂度高
- 应用场景:代码量多,功能多,改动大,需不断迭代和维护的软件中。比如:复杂的电商程序、企业内部的管理系统、游戏等。
- 代码示例:
class LuffyStudents:
school = 'Luffy'
def learn(self):
print('学习')
def eat(self):
print('吃东西')
def sleep(self):
print('睡觉')
# 实例化了三个学生对象
s1 = LuffyStudents()
s2 = LuffyStudents()
s3 = LuffyStudents()
print(s1,s1.school)
print(s2)
print(s3)
转载自www.cnblogs.com/xjmlove/p/10317630.html