案例:跑步减肥
面向对象的开发逻辑是先抽象出来
代码示例:
class Person:
"""
定义一个人类
"""
def __init__(self,name,weight):
"""
初始化人的姓名和体重
"""
self.name = name
self.weight = weight
def __str__(self):
"""
格式化输出
"""
return "我的名字是[{}],通过努力我现在的体重是[{}]斤".format(self.name,self.weight)
def eat(self):
print("吃饱了再减肥吧~!")
self.weight += 1
def run(self):
print("生命在于运动,跑起来吧~!!")
self.weight -= 1
# 实例化对象
lili = Person("丽丽",80)
print(lili)
lili.run()
lili.run()
lili.run()
print(lili)
lili.eat()
print(lili)
# 实例化另一个对象
zhangsan = Person("张三",100)
print(zhangsan)
zhangsan.eat()
zhangsan.eat()
zhangsan.eat()
print(zhangsan)
zhangsan.run()
print(zhangsan)
私有属性
定义:在名字前面加上两个 _ _ ,添加了私有属性后,该属性将不能被修改;
在Python中,没有觉得的私有,其实当我们去定义私有属性的时候,会对这个属性名字去做处理
会在这个属性的前面加上类名
属性名处理方式:属性名 改成格式 类名 _属性名
代码示例:
class Woman:
"""
创建一个女人类
"""
def __init__(self,name,age):
"""
初始化姓名和年龄
"""
self.name = name
# self.age = age
# 添加一个私有属性
self.__age = age
def __str__(self):
"""
格式化输出
"""
return "我的名字叫[{}],我今年{}岁!".format(self.name,self.__age)
# 实例化对象
lili = Woman("丽丽",19)
print(lili)
lili.age = 38
print(lili)
用__dict__查询私有属性的格式方法
print(lili.__dict__)
"""
输出结果:{'name': '丽丽', '_Woman__age': 19, 'age': 38}
私有属性的原理:
就是把属性里的属性名更改了格式,例子中就是把属性名'age'改成了属性名'_Woman__age'格式
即:属性名 改成 _类名__属性名
"""
要想输出私有属性,可以如下操作:
lili._Woman__age = 38
print(lili)
"""
输出结果:我的名字叫[丽丽],我今年38岁!
"""
使用get和set方法封装私有属性
get 获得一个属性 ,规范:对私有属性进行赋值,起方法的名字
set 设置一个属性 ,规范:对私有属性进行赋值,起方法的名字
通过提供一个公有的方法来访问私有属性(伪私有属性)或者方法,这样的话我们可以按照条件来进行访问权限的控制;
代码示例:
class QqRead:
"""
定义QQ阅读类
"""
def __reader(self):
"""
封装一个私有属性
"""
print("SVIP会员小说阅读中···")
# def __init__(self,money):
# """
# 升级:
# 初始化账户余额
# """
# self.money = money
def get_BuyVip(self,money):
"""
提供一个公有的方法,对私有的方法进行访问
get 获得 ,规范:对私有属性进行赋值
set 设置 ,规范:对私有属性进行赋值
"""
if money > 20:
self.__reader()
else:
print("对不起,余额不足,请充值会员~!!")
# 实例化对象
qq = QqRead()
qq.get_BuyVip(10)
qq.get_BuyVip(30)
"""
输出结果:
对不起,余额不足,请充值会员~!!
SVIP会员小说阅读中···
"""
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具