面向对象
一、什么是面向对象
面向对象是一种把脑海里的想象变成现实事物的编程思想
二、我们通过一个故事来了解面向对象这个编程思想
故事的名字:女娲造人
从前,有位神叫女娲 ,她生活在太阳尽头。当时大地上除了花草树木就只剩下女娲
有一天女娲坐在河边玩泥巴,她在想如果有一个,跟我一样能够说话的人就好了。
她想要一个同伴来陪她,于是她就拿起手中泥巴,捏泥人,时间过了很久,捏出来泥人,都奇奇怪怪的。
女娲一点都不喜欢,于是她在脑海中想象 这个同伴 应该是两个眼睛一个嘴巴有名字,还会聊天 她轻轻一笑,于是女娲根据脑海中的样子,快速捏出来了很多泥人,这些泥人都具有相似的特点都有一个嘴巴,两个眼睛,还会聊天,从此女娲不再寂寞和孤单,大地上也多了很多欢声笑语。
故事中的启示:
- 什么是类?
- 什么是实例化类?
- 什么是面向对象?
三、类
类就是女娲想法
> 示例:
class 类名:
成员属性
成员方法
class 女娲想法:#类
眼睛 = None#这个眼睛鼻子名字 叫成员属性 1
鼻子 = None
名字 = None #这只是女娲想法 还没有去捏泥人 目前空 None
def func(self):#成员方法
print('会聊天')
- 什么是成员属性:在类中变量,叫成员属性。
- 什么是成员方法 :在类中函数,叫成员方法。
四、实例化类
示例:类名()
第一个泥人 =女娲想法() # 将女娲想法:实例化 这个想法
第二个泥人 = 女娲想法()
第三个泥人 =女娲想法()
创建类 + 实例化类 == 面向对象
五、成员方法中 self 的意思
self作用:可以使成员方法,访问成员变量中的值
示例:
def func(self):
print(self.名字,'会聊天')
class 女娲想法:
# 在类中变量 叫 成员属性
眼睛 = None
鼻子 = None
名字 = None #这只是女娲想法 还没有去捏泥人 目前空None
def func(self):
# 通过self 可以访问到 眼睛 鼻子 名字
print(self.名字,'会聊天')
# 根据女娲想法 来 捏这个泥人 这个思想 就叫面向对象
# 实例化一次 就是创建一个泥人
第一个泥人 = 女娲想法() # 女娲想法 实例化 这个想法
第一个泥人.名字 = '悟空'
第一个泥人.眼睛 = 2
第一个泥人.鼻子 = 1
第一个泥人.func()
第二个泥人 = 女娲想法() # 通过女娲想法() 再来创建一个泥人 第二个泥人
第二个泥人.名字 = '嫦娥'
第二个泥人.眼睛 = 2
第二个泥人.鼻子 = 1
第二个泥人.func()
六、案例
我们将健身做一个类,健身有装备、有饮食、有睡眠。 我们使用面向对象的编程思想,创建一个类,并实例化
健身。
class 健身的想法:
#成员变量
装备=None #空,这还只是想的阶段
饮食=None
睡眠=None
#成员方法
def func(self):
print(f'准备{self.装备},开始吃{self.饮食},必须{self.睡眠},然后才跑步,撸铁')
这是男生的健身计划=健身的想法()#实例化类
这是男生的健身计划.装备=['哑铃','杠铃']
这是男生的健身计划.饮食=['鸡胸肉','西兰花']
这是男生的健身计划.睡眠=['少熬夜','早睡早起']
这是男生的健身计划.func()
七、魔法方法
init 魔法方法
- 魔法 :他会在实例化类 自动调用
- 方法: 函数
- 作用: 在实例化类的时候 就会调用里面内容
- 用途 :一般 用于初始化成员属性
class 健身的想法2:
def __init__(self,x,y,z):#用init魔法方法创建变量,通过实例化类传参
self.装备=x
self.饮食=y
self.睡眠=z
def func2(self):
print(f'准备{self.装备},开始吃{self.饮食},必须{self.睡眠},然后才普拉提,瑜伽')
这是女生的健身方法=健身的想法2(['跳绳','弹力带'],['绿色蔬菜','瘦肉'],['早睡早起','精神好'])#实例化类
这是女生的健身方法.func2()
八、在项目中面向对象如何使用
用户功能 :登录、注册、查询用户信息是一类
操作功能: 删除信息 查询信息 查看主页信息
这边是面向对象:
class 用户功能:
def login(self):
print('这是登录方法')
def regin(self):
print('这是注册方法')
def xinxi(self):
print('这是查询用户信息的方法')
class 操作功能:
def a(self):
print('这是删除信息方法')
def b(self):
print('这是查询信息方法')
def c(self):
print('这是查看主页方法的方法')
张三 = 用户功能()
张三.login()
不使用面向对象:
def login(self):
print('这是登录方法')
def a(self):
print('这是删除信息方法')
def b(self):
print('这是查询信息方法')
def regin(self):
print('这是注册方法')
def c(self):
print('这是查看主页方法的方法')
def xinxi(self):
print('这是查询用户信息的方法')
面向对象编程好处 :
- 提高代码的可读性 可维护性 可重用性

被折叠的 条评论
为什么被折叠?



