面向过程的概念
面向过程的核心是:过程二字,即先干什么,在干什么, 最后干什么。机械式思维方式
eg:
大象放冰箱的步骤:
1. 打开冰箱门,
2. 把大象放进冰箱
3. 观赏冰箱门
优点:复杂的问题简单化,流程化
缺点:扩展性差,牵一发而动全身
应用场景:对扩展性要求不高的地方
eg2:
写一个注册功能
面向对象的概念
面向对象核心是:对象二字
1. 在程序中:
对象就是盛放数据属性和功能的容器
2. 在现实生活中
对象就是特征与技能的结合体
优点:扩展性强
缺点:简单的问题复杂化
应用场景:对扩展性要求高的地方
eg:学生选课系统为例
def choose_course(stu_dic,course):
stu_dic['courses'].append(course)
print('%s选课成功%s' % (stu_dic['name'], stu_dic['courses']))
stu1 = {
'name': 'tom',
'age': 19,
'gender': 'male',
'courses': [],
'choose_course':choose_course
}
stu2 = {
'name': 'kevin',
'age': 20,
'gender': 'male',
'courses': [],
'choose_course': choose_course
}
stu1['choose_course'](stu1, 'python')
stu2['choose_course'](stu2, 'python')
类的定义和对象的产生
类:一系列对象相似的特征和相似的技能的结合体
问题来了?
到底是先有类还是先有对象?
1. 现实生活中:
一定是先有对象,在有类
2. 程序中:
必须先定义类,在调用类产生对象(*******)
class Student():
school = 'SH'
def choose_course(stu_dic, course):
stu_dic['courses'].append(course)
print('%s选课成功%s' % (stu_dic['name'], stu_dic['courses']))
print(12233333)
'''
定义类发生的几件事?
1. 类定义完成后,会立马执行类体代码
2. 执行类体代码,把类中的名字都丢到类的名称空间去
3. 把类的名称空间绑定给__dict__, 类名.__dict__
'''
print(Student.__dict__)
stu1 = Student()
stu2 = Student()
print(stu1.__dict__)
print(stu2.__dict__)
定制对象自己独有的属性
class Student():
school = 'SH'
def __init__(stu_dic, name, age, gender, course=[]):
stu_dic.name = name
stu_dic.age = age
stu_dic.gender = gender
stu_dic.course = course
def choose_course(stu_dic, course):
stu_dic['courses'].append(course)
print('%s选课成功%s' % (stu_dic['name'], stu_dic['courses']))
stu = Student('tom', 19, 'male')
stu1 = Student('kevin', 19, 'male')
'''
调用类的过程也称为是实例化的过程,得到的对象就是一个实例
'''
属性的查找顺序
print(stu1.__dict__)
print(stu.school)
stu.x = 'aaa'
print(stu.__dict__)
stu.x = 'bbb'
del stu.x
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用