【小学生都能看懂的Python入门教程】第四章:面向对象编程 (类与对象) 面向对象初探——代码也能“活”过来:虚拟猫咖开业指南
面向对象初探——代码也能“活”过来:虚拟猫咖开业指南
一、类与对象:代码界的克隆技术
1. 类 vs 对象:乐高说明书 vs 拼好的飞船
- 类(Class):就像乐高的说明书,定义了每个零件的组装方式
- 对象(Object):根据说明书拼出的成品,可以批量生产无数个
# 定义《猫星人》说明书
class Cat:
pass
# 生产三只电子猫
cat1 = Cat() # 大橘
cat2 = Cat() # 小黑
cat3 = Cat() # 小白(但实际还没设置属性)
冷知识:在Python中,连整数都是对象——
1
其实是int
类的实例,比你家的猫主子还讲究
二、定义类:创建虚拟猫咖的基因库
1. 初始化方法:猫咪的出生证明
class CyberCat:
def __init__(self, name, color):
self.name = name # 每只猫的专属名字
self.color = color # 毛色
self.weight = 3 # 初始体重(kg)
print(f"{color}色的{name}降临数字世界!")
2. 实例化:迎接第一批顾客
cat_alpha = CyberCat("阿尔法", "橘") # 输出:橘色的阿尔法降临数字世界!
cat_beta = CyberCat("贝塔", "黑") # 输出:黑色的贝塔降临数字世界!
情景剧:
__init__
:猫咖的出生登记处
self
:每只猫的身份证(没有它,猫会不知道自己是谁)
三、方法与属性:猫咪的行为图鉴
1. 属性:猫咪的特征档案
print(cat_alpha.color) # 橘
print(cat_beta.weight) # 3(刚出生的标准体重)
2. 方法:猫咪的才艺表演
class CyberCat:
# ...(省略__init__)
def meow(self, times=1):
"""发出电子猫叫"""
return "喵~" * times + "(电量-1%)"
def eat(self, food="猫粮"):
"""进食系统"""
self.weight += 0.5
return f"{self.name}吃了{food},体重涨到{self.weight}kg!"
使用示例:
print(cat_alpha.meow(3)) # 喵~喵~喵~(电量-1%)
print(cat_beta.eat("小鱼干")) # 贝塔吃了小鱼干,体重涨到3.5kg!
四、实战演练:云养猫模拟器
功能说明
- 创建不同品种的电子猫
- 实现喂食、互动功能
- 监测猫咪健康状态
代码全解析
class CyberCat:
def __init__(self, name, breed):
self.name = name
self.breed = breed # 品种
self.hunger = 50 # 饥饿值(0-100)
self.mood = "平静" # 心情
def feed(self, food="猫粮"):
"""投喂系统"""
if self.hunger < 20:
self.mood = "傲娇"
return f"{self.name}推开{food}:本宫不饿"
self.hunger -= 30
self.mood = "满足"
return f"{self.name}吃掉了{food},尾巴摇成螺旋桨!"
def play(self):
"""玩耍系统"""
if self.hunger > 80:
self.mood = "暴躁"
return "⚠️ 警告:饥饿值过高,可能触发挠人程序"
self.hunger += 20
self.mood = random.choice(["开心", "兴奋"])
return f"和{self.name}玩逗猫棒,获得爱心+1"
def status(self):
"""健康监测"""
return f"""
{self.breed}猫{self.name}
饥饿值:{'🍗'*(100-self.hunger)//10}
心情:{self.mood}
"""
# 创建猫咪
my_cat = CyberCat("阿波罗", "布偶")
# 互动循环
while True:
print(my_cat.status())
action = input("请选择:1.喂食 2.玩耍 3.退出 → ")
if action == "1":
print(my_cat.feed("豪华猫罐头"))
elif action == "2":
print(my_cat.play())
elif action == "3":
print("关闭猫咖,下次见!")
break
运行示例:
布偶猫阿波罗
饥饿值:🍗🍗🍗🍗🍗
心情:平静
请选择:1.喂食 2.玩耍 3.退出 → 1
阿波罗吃掉了豪华猫罐头,尾巴摇成螺旋桨!
五、OOP冷知识档案馆
- 继承:可以让
CyberCat
继承Animal
类,就像猫咪继承动物的基本特性 - 多态:不同品种的猫可以重写
meow()
方法,发出不同叫声 - 封装:把猫的饥饿值设为私有属性,防止乱投喂(用
self._hunger
) - 类属性:所有猫共享的属性,比如
species = "Felis catus"
为什么用面向对象?
因为当代码复杂度超过女友的心思时,OOP就是你的情感导师
结语:从代码民工到造物主
现在你已经掌握:
✅ 类与对象的概念区分
✅ 定义类与实例化对象
✅ 方法与属性的使用
✅ 虚拟猫咪系统的开发
当你能用代码创造会饿、会玩、有情绪的电子生命时,就真正理解了面向对象的魔力。记住,好的类设计就像养猫——要给足够的属性记录特征,合理的方法定义行为,还要记得留出扩展空间(毕竟猫主子随时可能有新需求)。
下期预告:《深入面向对象——对象也有“朋友圈”:代码界的社交达人指南》
课后彩蛋:在CyberCat
类中添加以下代码,解锁隐藏剧情:
def __str__(self):
return f"[{self.breed}]{self.name} ver2.0"
# 试试print(my_cat),看有什么变化
代码学习,前言技术分享,深度分析编程技术,普及科普编程技术,天天都要敲代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)