概念:
-
面向对象编程【简称:OOP】
开发程序模式
-
面向过程:
-
程序得开发过程是根据业务逻辑走【根据要求写语句】
-
如何达成目标
-
-
面向对象:
-
程序得开发过程是围绕数据走
-
操作将会影响谁
-
案例:打印tom、jerry、jack三个学员的信息,信息包括姓名、年龄、地址
# ================ 面向过程 ===================
# 定义第一个学员
stu1 = {
"name":"tom",
"age":"18",
"addr":"hebei"
}
# 定义第一个学员
stu2 = {
"name":"jerry",
"age":"18",
"addr":"tianjin"
}
# 定义第一个学员
stu3 = {
"name":"jack",
"age":"18",
"addr":"beijing"
}
def showStu(**stuInfo):
print("%s 的 年龄是 %s, 地址是%s"%(stuInfo["name"],stuInfo["age"],stuInfo["addr"]))
showStu(**stu1)
showStu(**stu2)
showStu(**stu3)
吃烤鸭
-
面向过程吃鸭子
-
【每一步都需要自己去实现】
-
养鸭子
-
鸭子长大
-
杀
-
腌制
-
烹饪
-
装盘
-
吃
-
-
面向对象吃鸭子
-
【问题如何处理】
-
找到卖烤鸭的店
-
买
-
吃
-
-
面向过程主要是需要关注具体的过程
-
面向对象主要是着眼点是如何达到最终效果
-
类
-
实例化
-
对象
-
这是一个抽象概念,统指一类事物,比如人、动物、狗
-
类是无法直接使用,必须将类实例化一个对象以后,基于这个对象才能使用
-
将一个抽象的类具体化到某一个具体的对象,这个过程实例化
-
实例化的结果就是对象
案例:
汽车 类
奥迪 类
奥迪a6 类
我的奥迪a6 对象
1.7 面向对象编程的特点水果 类
苹果 类
我吃了一块的苹果 对象
-
一切皆为对象,列表、字典、字符串、元组
-
例如:列表就是一个对象,列表中的每个元素也都是对象
-
python就是一堆对象集合
-
-
每个对象都是实例化的结果
-
每一类对象都具有自己特定的属性和方法
- # 列表是一个类
- # 创建一个列表对象【类的实例化】
li1 = [1,2,3]
- # 列表类的方法
li.pop()
li.append()
- # 字符串是一个类
- # 创建字符串对象
str1 = "123"
灯类的通用方法
-
开
-
关
所有的对象,都是由类生成的,类具有的方法,其所有生成的对象都会具有
-
例如灯类有开、关方法,那么所有实例化产生的灯,都具有这些方法
-
类名
-
类方法:
-
类的方法其实就是类里面的函数
-
方法其实就是能做的事情
-
-
类属性:
-
类的属性其实就是类里面的一个变量
-
属性其实就是这一类事物具有的特点、特性
-
案例:以狗类为例
1.9 面向对象的三个原则类名:狗
类属性:品种、性别、毛色、体重、身高、年龄
类方法:叫、咬、吃、喝、拉、撒、跑
-
封装:
-
隐藏具体的实现细节
-
-
继承:
-
子类会继承父类所有的属性和方法
-
类
-
上级类:父类、基类、超类
-
下级类:子类、派生类
-
-
-
多态:
-
传递不同的数据,会返回不同的结果
-
说明# 定义经典类
class 类名():
属性
方法# 定义新式类
class 类名(父类名):
属性
方法
-
函数名:第二个单词首字母大写
-
类名:每个单词首字母大写
案例:
# 定义一个类
class StuInfo():
# 定义属性
age = "10"
addr = "hebei"
name = "tom"
# 定义方法
def showInfo(self): # 类中的方法的第一个形参必须是self
#print("%s的年龄是%s, 地址在%s"%(name, age, addr)) # 此时这三个变量是去全局段找
print("%s的年龄是%s, 地址在%s"%(self.name, self.age, self.addr)) # 加上self是去类内部找变量
# 进行实例化,将实例化结果赋值给stu1变量
# stu1是一个对象
stu1 = StuInfo()
# 显示类属性
print(stu1.age)
print(stu1.addr)
print(stu1.name)
# 调用类方法
stu1.showInfo()
案例:
class Car():
def Start(self):
print("汽车启动...")
def Run(self):
print("汽车在行驶...")
def Stop(self):
print("汽车停止...")
myCar = Car()
myCar.Start()
myCar.Run()
myCar.Stop()
案例 给类添加属性:
# 定义一个类
class Car():
# 定义一个属性
speed = "30"
# 定义一个方法
def Start(self):
print("汽车启动...")
# 定义一个方法
def Run(self):
print("品牌是%s, 车型是%s,汽车在行驶,速度是%s "%(myCar.carPai, myCar.carType, self.speed))
# 定义一个方法
def Stop(self):
print("汽车停止...")
# 将类实例化成对象,将对象赋值给myCar
myCar = Car()
# 修改类中的属性
myCar.speed = "80"
# 给类添加属性
myCar.carType = "SUV"
myCar.carPai = "领克"
# 调用类方法
myCar.Start()
myCar.Run()
myCar.Stop()


