【小学生都能看懂的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!

四、实战演练:云养猫模拟器

功能说明

  1. 创建不同品种的电子猫
  2. 实现喂食、互动功能
  3. 监测猫咪健康状态

代码全解析

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冷知识档案馆

  1. 继承:可以让CyberCat继承Animal类,就像猫咪继承动物的基本特性
  2. 多态:不同品种的猫可以重写meow()方法,发出不同叫声
  3. 封装:把猫的饥饿值设为私有属性,防止乱投喂(用self._hunger
  4. 类属性:所有猫共享的属性,比如species = "Felis catus"

为什么用面向对象?
因为当代码复杂度超过女友的心思时,OOP就是你的情感导师

结语:从代码民工到造物主

现在你已经掌握:
✅ 类与对象的概念区分
✅ 定义类与实例化对象
✅ 方法与属性的使用
✅ 虚拟猫咪系统的开发

当你能用代码创造会饿、会玩、有情绪的电子生命时,就真正理解了面向对象的魔力。记住,好的类设计就像养猫——要给足够的属性记录特征,合理的方法定义行为,还要记得留出扩展空间(毕竟猫主子随时可能有新需求)。

下期预告:《深入面向对象——对象也有“朋友圈”:代码界的社交达人指南》


课后彩蛋:在CyberCat类中添加以下代码,解锁隐藏剧情:

def __str__(self):
    return f"[{self.breed}]{self.name} ver2.0"
# 试试print(my_cat),看有什么变化
posted @   爱上编程技术  阅读(4)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示