一、面向对象和面向过程
面向过程:
核心过程二字,过程即解决问题的步骤,就是先干什么后干什么
基于该思想写程序就好比在这是一条流水线,是一种机械式的思维方式
优点:复杂的过程流程化
缺点:扩展性差
面向对象:
核心是对象二字,对象指特征与技能的结合体
基于该思想编写程序就好比在创造一个世界,世界是由一个个对象组成,是一种‘上帝式’的思维方式
优点:可扩展性强
缺点:变成复杂度高,极容易出现过度设计的问题
二、类
对象是特征与技能的结合体,类就是一系列对象相似的特征与技能的结合体
在现实生活中:一定是先有一个个具体的对象,后总结出类
在程序中:一定是先定义类,后产生对象
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')