🐸

升级改造

Python 基础python-architect-20-the-upgrade
奖励: 100 XP
|

对象不是雕像,它们是活的!它们会随着时间而改变。

一个机器人可能初始等级是 1,但我们可以写一个咒语来升级它。

改变自身

方法不仅可以打印信息,还可以 修改 对象的数据。

class Hero:
  def __init__(self):
      self.hp = 100

  def take_damage(self):
      self.hp = self.hp - 10 # 改变自己!

hero = Hero()
hero.take_damage()
print(hero.hp) # 90
1
定义升级

Robot 内部,定义 def upgrade(self):

2
修改数据

在方法内部,增加等级:self.level = self.level + 1(或者 self.level += 1)。

3
多次升级

调用 bot.upgrade() 两次。观察等级从 1 变成 2,再变成 3!

这被称为 "State" (状态)。对象会记住它当前的状态(等级 3),而方法会改变这个状态。

参考答案
点击展开
参考答案:
class Robot:
  def __init__(self, name):
      self.name = name
      self.level = 1

  def upgrade(self):
      self.level = self.level + 1
      print(self.name + " upgraded to level " + str(self.level))

bot = Robot("HoppyBot")
print("Start Level: " + str(bot.level))

bot.upgrade()
bot.upgrade()

print("Final Level: " + str(bot.level))
高级技巧
想更进一步?点击展开

F. 封装 (Encapsulation)

  • 我们将升级的逻辑保持在 Robot 内部
  • 这比在代码到处手写 bot.level = bot.level + 1 要安全得多。Robot 自己管理自己的升级过程!
Loading...
终端输出
Terminal
Ready to run...