第三阶段:本能 (The Reflex).
我们的魔像非常敬业。太敬业了。它会一直工作直到电池耗尽,然后彻底死机(程序崩溃)。
生物有 痛觉 来告诉它们停止。我们需要赋予魔像类似的 本能 (异常)。
安全检查
我们需要修改 work() 方法。在做任何事之前,它应该先检查自己的能量。
- 检查: 如果
energy <= 0,立刻停手! - 警报: 抛出一个
ValueError,内容是 "Low Battery"。
然后,在我们的主循环中,我们捕获这个警报并给它充电。
def work(self):
# 1. 先计算可能消耗的能量
loss = random.randint(5, 15)
# 2. 检查是否会导致透支
if self.energy - loss < 0:
raise ValueError("Low Battery!")
# 3. 正常工作
# ...
1
修改 work()
在 work 方法的最顶部添加检查。如果能量不足,抛出 ValueError。
2
危机处理
在主代码中,用 try...except 块包裹 bob.work() 调用。
3
充电
在 except 块中:
- 打印 "Recharging..." (正在充电)。
- 将
bob.energy重置为100。
注意:我们在类内部抛出错误,但在外部捕获它。这就是组件向主系统通报故障的方式。
参考答案点击展开点击收起
点击展开点击收起
参考答案:
import random
class Golem:
def __init__(self, name):
self.name = name
self.energy = 20 # Low capacity for testing
def work(self):
# 1. 先计算消耗
loss = random.randint(5, 15)
# 2. 检查是否付得起
if self.energy < loss:
raise ValueError("Low Battery!")
# 3. 如果通过,再扣除能量
self.energy -= loss
print(f"{self.name} works. Energy: {self.energy}")
bob = Golem("Bob")
# Simulate work
for i in range(10):
try:
bob.work()
except ValueError:
print("Recharging...")
bob.energy = 20Loading...
终端输出
Terminal
Ready to run...