🐸

本能

Python 基础python-architect-28-the-reflex
奖励: 120 XP
|

第三阶段:本能 (The Reflex).

我们的魔像非常敬业。太敬业了。它会一直工作直到电池耗尽,然后彻底死机(程序崩溃)。

生物有 痛觉 来告诉它们停止。我们需要赋予魔像类似的 本能 (异常)。

安全检查

我们需要修改 work() 方法。在做任何事之前,它应该先检查自己的能量。

  1. 检查: 如果 energy <= 0,立刻停手!
  2. 警报: 抛出一个 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 = 20
Loading...
终端输出
Terminal
Ready to run...