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

装饰器
使用装饰器

自定义函数具有广泛的用途,但有时你可能希望为现有函数增加额外的功能。这称为装饰器,它是一种旨在扩展现有函数的功能的函数,因此得名。

在本关中,需要对烤箱进行预处理以使其做好食品准备。使用装饰器在向烤箱中装载干柴之间调用 open() 和 close()。

Guide

目标

使用装饰器将炉子装上柴火,并设置炉子使其可以为烹饪做好准备。

砖炉需要被准备好,这样你就可以在晚上稍晚些时候烤制食物。炉子目前是关闭状态且空无一物,需要一些柴火来点燃。拿些柴火把它装进炉子里,然后你就可以开始烹饪了。你可以手动操作或使用自定义函数来完成这一步,但使用 装饰器 可以加快这一过程。

装饰器 是可以添加到自定义函数上的附加组件,能够在无需用条件语句使其过于复杂的情况下,根据需求扩展函数的功能。

# Decorator, adds extra functionality to another function def load_wood(func): def load(): player.open() func() player.close() return load # Custom function that can be decorated def add_wood(): player.place("firewood") player.speak("Three logs placed in oven") # Decorate the custom function prep_oven = load_wood(add_wood)

走到地图下方的仓库,收集所有四(4)捆原木。走到金色的 X 标记处,使用 read() 函数检查吧台上显示的便条,以确定炉子应设置的温度。记下弹出窗口中的信息,因为你之后会用到它。

接下来,走到炉子旁边的浅色 X 标记处,使用带装饰器的函数来放置柴火,如:prep_oven()。当你将柴火放入炉子后,走到彩色地毯上深色的 X 标记处,使用 question() 异步函数来设置炉子的温度。

辅助函数会预先设置好,名为 set_temperature(),而你对问题的回答将决定温度设置为 HighMedium。根据你之前阅读的便条信息,通过编写函数并回答问题来设置温度,每个温度都应与相应颜色的地毯对应。记住,在使用异步函数时,加上 await,例如:await set_temperature()

一旦你准备并设置好所有四(4)个炉子,就完成了这一关。

代码书