1. 项目概述
最近在整理Python面向对象编程的教学案例时,我设计了一个"职业选手PK"的模拟程序。这个项目通过两个虚拟职业选手的对战,生动展示了Python类的封装、继承和多态三大特性。不同于教科书上的抽象示例,这个案例用游戏化的方式让学习者直观理解面向对象编程的核心概念。
程序模拟了两个职业选手(比如拳击手和剑士)的对抗过程。每个选手都有自己的生命值、攻击力和特殊技能。对战过程中,双方轮流发动攻击,直到一方生命值归零。通过这个案例,我们可以学习到:
- 如何用类来抽象现实世界中的对象
- 类的属性和方法如何定义
- 继承机制如何实现职业特化
- 多态如何让不同职业展现不同行为
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心类设计
2.1 基类Fighter设计
我们先定义一个所有职业选手的基类Fighter,包含选手的通用属性和行为:
python复制class Fighter:
def __init__(self, name, hp, damage):
self.name = name # 选手名字
self.hp = hp # 生命值
self.damage = damage # 基础攻击力
def attack(self, enemy):
"""基础攻击方法"""
enemy.hp -= self.damage
print(f"{self.name}攻击了{enemy.name},造成{self.damage}点伤害")
def is_alive(self):
"""检查是否存活"""
return self.hp > 0
这个基类定义了每个选手都有的基本属性:名字、生命值和攻击力。同时提供了两个基本方法:
attack():执行基础攻击逻辑is_alive():检查选手是否还存活
2.2 派生类设计
基于这个基类,我们可以创建不同的职业选手。这里我们设计两个派生类:Boxer(拳击手)和Swordsman(剑士)。
2.2.1 Boxer类
python复制class Boxer(F
