一、面向对象和面向过程
面向过程:
核心过程二字,过程即解决问题的步骤,就是先干什么后干什么
基于该思想写程序就好比在这是一条流水线,是一种机械式的思维方式
优点:复杂的过程流程化
缺点:扩展性差
面向对象:
核心是对象二字,对象指特征与技能的结合体
基于该思想编写程序就好比在创造一个世界,世界是由一个个对象组成,是一种‘上帝式’的思维方式
优点:可扩展性强
缺点:变成复杂度高,极容易出现过度设计的问题
二、类
对象是特征与技能的结合体,类就是一系列对象相似的特征与技能的结合体
在现实生活中:一定是先有一个个具体的对象,后总结出类
在程序中:一定是先定义类,后产生对象
class Students: #类属性 school = 'IT大学' #初始化函数 def __init__(self,name,age): #对象属性 self.name = name self.age = age #self:谁实例化出来的对象谁就是self s1.name = name s2.name = name def run(self): print('%s is running......' % self.name) s1 = Students('小明',25) s2 = Students('小李',26) print(s1.school) print(s2.school) print(s1.name) print(s2.name) s1.run() s2.run() #类体代码在类的定义阶段就会立刻执行 class Students: school = 'IT大学' def run(self): # return 'running......' print('running....') stu1 = Students() stu2 = Students() stu3 = Students() print(Students.school) #数据属性 print(Students.run) #函数属性 print(stu1.school) #查询属性 stu1.contry = '中国' #添加属性 del stu1.contry #删除类属性 stu1.school = 'IT' #修改属性 #实例化出不同属性的对象 class Students: school = 'IT大学' def __init__(self,name, age, job): self.name = name self.age = age self.job = job def run(self): # return 'running......' print('running....') stu1 = Students('张三', 18, 'IT') stu2 = Students('王二', 16, 'student') stu3 = Students('赵五', 19, 'teacher')