Coding for KidsCoding for Kids
创意关卡挑战教师指南
为功能投票
高级 Python 开发课程
第 章
>
第 级

高级类
方法重写

目标

通过创建覆盖方法的对象将油装瓶以烹饪肉类。

有一些油可以用来烹饪蔬菜,但为了便于使用,需要先将其装瓶。与上一关卡类似,使用类和创建对象是一种有效的方法。不过,在类中更有效地利用对象继承也有其他方法,比如让 子类 覆盖 父类 中的函数。

# Parent Class class oil_bottle: label = "" async def label_bottle(self): await player.read() # Child Class class fill_bottle(oil_bottle): def fill_bottle(self): player.place("empty bottle") player.collect("oilbottle") async def label_bottle(self): await player.write(self.label)

在上述代码中,子类 覆盖了 父类 中的 label_bottle() 函数,以重新写入瓶子上的标签。这也允许你使用异步函数设置自定义消息。

首先,到场地上收集所有四(4)个空瓶,收集完成后,走向黑色的 X 标记,并使用这些类创建对象。

共有四(4)种油需要装瓶,它们对应于机器前彩色地毯上的颜色:olive_oil 在黄色地毯上装瓶,avocado_oil 在绿色地毯上装瓶,canola_oil 在蓝色地毯上装瓶,vegetable_oil 在红色地毯上装瓶。

为每种油创建对象,写下它们的标签,并激活 子类label_bottle()fill_bottle() 函数,例如:

olive_oil = fill_bottle() ovive_oil.label = "Olive Oil" ovive_oil.label_bottle() ovive_oil.fill_bottle()

每个标签应包含每种油的名称,首字母大写,格式如下:"Olive Oil"、"Avocado Oil"、"Canola Oil" 和 "Vegetable Oil"。

装瓶完油后,走向位于麻袋前的浅色 X 标记,并使用 collect() 函数从麻袋中取出 "onion"。之后,走向金色的 X 标记,并使用油来烹饪洋葱,将它们存入名为 ingredients 的列表中,如:ingredients = ["Olive Oil", "onion"]。使用 place() 函数与该列表一起烹饪食材。

最后,将剩余的油存入一个名为 oils 的列表中,如:oils = ["Avocado Oil","Canola Oil","Vegetable Oil"]。走向位于紫色地毯上的浅色 X 标记,面向橱柜,使用 place() 函数与油的列表一起,将物品存入橱柜,完成关卡。

代码书