面向对象
核心是对象二字,对象是特征与技能的结合体,基于面向对象设计程序就好比在创造一个世界,你就是这个世界的上帝,存在的皆为对象,
不存在的也可以创造出来,与面向过程机械式的思维方式形成鲜明对比,面向对象更加注重对现实世界的模拟,是一种“上帝式”的思维方式。
类:
对象是特征与技能的结合体,那类就是一系列对象相同的特征与技能的结合体 2、在现实世界中:一定先有对象,后来随着人类文明的发展总结出的类 对象是具体存在的,而类只是一种抽象概念 3、在程序中,务必保证:先定义类,后调用类来产生对象
现实生活中的对象: 对象1: 特征: school="Oldboy" name="马冬梅" age=18 sex="female" 技能: 学习 选课 对象2: 特征: school="Oldboy" name="甜蜜蜜" age=21 sex="male" 技能: 学习 选课 对象3: 特征: school="Oldboy" name="原石开" age=22 sex="male" 技能: 学习 选课 现实生活中的老男孩学生类: 相同的特征 school="Oldboy" 相同的技能 学习 选课 ''' #1、程序中的类 class OldboyStudent: # 用变量表示特征 school="Oldboy" # 用函数表示技能 def learn(self): print('is learning...') def choose(self): print('choose course...') # print('======>') # 注意:在定义类的阶段会立刻执行类体内的代码,然后将产生的名字存放于类名称空间中 # print(OldboyStudent.__dict__) # print(OldboyStudent.__dict__['school']) # print(OldboyStudent.__dict__['learn']) # OldboyStudent.__dict__['learn'](123) # print(OldboyStudent.school) # OldboyStudent.__dict__['school'] # print(OldboyStudent.learn) # OldboyStudent.__dict__['learn'] # OldboyStudent.learn('xxx') # OldboyStudent.learn('xxx') OldboyStudent.country='China' OldboyStudent.school='偶的博爱' del OldboyStudent.country print(OldboyStudent.__dict__)
如果我让你编写一个选课系统,那么有如下对象,请抽象成类,然后在程序中定义出来
# 4.1 老男孩有两所学校:北京校区和上海校区 # 4.2 老男孩学校有两们课程:python和linux # 4.3 老男孩有老师:egon,alex,lxx,wxx,yxx # 4.3 老男孩有学生:。。。 # 4.4 老男孩有班级:python全栈开发1班,linux高级架构师2班 class PythonBeijin: shcool = 'Beijing' course = 'Python' team = 'python全栈开发1班' taecher='alex' def choose(self): print('choose course...') class LinuxBeijin: shcool = 'Beijing' course = 'Linux' team = 'linux高级架构师2班' taecher = 'wxx' def choose(self): print('choose course...') class PythonShanghai: shcool = 'Shanghai' course = 'Python' team = 'python全栈开发1班' taecher='egon' def choose(self): print('choose course...')