🧙霍格沃茨魔法课堂:类与对象——创造属于你的魔法生物!🧙


1. 魔法比喻:类就像“魔法生物蓝图”

在魔法世界,神奇生物有共同特征(比如护树罗锅会开锁、夜骐能飞行)。

  • 类(Class):是生物模板(比如“所有家养小精灵”的通用规则)。
  • 对象(Object):是具体实例(比如“多比”这个真实存在的小精灵)。

2. 基础咒语:定义一个“魔法画像”类

画像会说话,但每幅画像有不同的名字和台词!

class 魔法画像:
    # __init__ 是初始化咒语(创造对象时自动执行)
    def __init__(self, 名字, 台词):  
        self.名字 = 名字    # 属性:画像的名字
        self.台词 = 台词    # 属性:画像的固定台词

    # 方法:画像会说话
    def 说话(self):        
        print(f"{self.名字}的画像说:{self.台词}")

# 创建两个画像对象(用类当模板)
画像1 = 魔法画像("胖夫人", "口令是什么?")
画像2 = 魔法画像("梅林", "知识就是力量!")

画像1.说话()  # 输出:胖夫人的画像说:口令是什么?
画像2.说话()  # 输出:梅林的画像说:知识就是力量!

3. 重点解析:类与对象的关键概念

  • 属性(Properties):对象的特征(比如名字、颜色、年龄)。
  • 方法(Methods):对象能做的动作(比如说话、飞行、攻击)。
  • self 的秘密:代表对象自己(像镜子里的倒影),用来访问属性和方法。

4. 魔法升级:继承——让生物拥有“家族能力”

不同魔法生物可能有共同祖先!比如所有火龙都会喷火,但有的会飞更高。

class 火龙:
    def __init__(self, 名字, 火焰温度):
        self.名字 = 名字
        self.火焰温度 = 火焰温度

    def 喷火(self):
        print(f"{self.名字}喷出了{self.火焰温度}度的火焰!🔥")

class 挪威脊背龙(火龙):  # 继承自火龙类
    def 高空飞行(self):   # 子类独有的方法
        print(f"{self.名字}冲上云霄,甩掉了匈牙利树蜂!")

# 创建子类对象
诺伯 = 挪威脊背龙("诺伯", 1500)
诺伯.喷火()          # 调用父类方法
诺伯.高空飞行()       # 调用子类方法

5. 常见错误:新手的魔法事故

忘记写 self

def 喷火(): # 错误!缺少self参数 print("喷火!")

混淆类与对象

火龙.喷火() # 错误!要先用类创建对象才能调用方法

6. 实战练习:制作会飞的扫帚

任务:定义一个飞天扫帚类,包含属性(名字、速度),方法(加速、减速)。

class 飞天扫帚:
    def __init__(self, 名字):
        self.名字 = 名字
        self.速度 = 0  # 初始速度为0

    def 加速(self):
        self.速度 += 10
        print(f"{self.名字}加速!当前速度:{self.速度}km/h 🚀")

    def 减速(self):
        if self.速度 > 0:
            self.速度 -= 5
            print(f"{self.名字}减速!当前速度:{self.速度}km/h")

# 测试代码
火弩箭 = 飞天扫帚("火弩箭")
火弩箭.加速()  # 速度+10
火弩箭.加速()  # 速度+10
火弩箭.减速()  # 速度-5

7. 高级魔法:用类模拟魔法对决

class 巫师:
    def __init__(self, 名字, 生命值):
        self.名字 = 名字
        self.生命值 = 生命值

    def 攻击(self, 目标, 咒语):
        print(f"{self.名字}对{目标.名字}使用了『{咒语}』!")
        目标.生命值 -= 10  # 每次攻击减少10点生命

哈利 = 巫师("哈利·波特", 100)
伏地魔 = 巫师("伏地魔", 150)

哈利.攻击(伏地魔, "除你武器")  # 哈利对伏地魔使用了『除你武器』!
print(f"伏地魔剩余生命:{伏地魔.生命值}")  # 输出:140

📜 课堂总结:类与对象守则

  1. 类是蓝图,对象是实体:就像“所有魔杖”是类,你的冬青木魔杖是对象。
  2. 属性是特征,方法是能力:猫头鹰的属性有羽毛颜色,方法有送信。
  3. 继承让魔法更高效:不必重复定义火龙和凤凰的共同特征。
  4. self 是灵魂:让对象知道自己是谁,能做什么。

🔮 课后作业:设计一个时间转换器类,包含属性(剩余时间)、方法(倒转时间、恢复时间)。试试让赫敏用这个类拯救小天狼星吧!

  • Avatar photo

    宁妄

    一个热爱自然却被困在代码世界的“人”

    Related Posts

    综合复习

    1️⃣ 认识Python Python就像和电脑说话的“魔法…

    牛马耕地

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注