对象不是雕像,它们是活的!它们会随着时间而改变。
一个机器人可能初始等级是 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...