Curso Avanzado de Desarrollo en Python
Capítulo
>
Nivel
Decoradores
Usando decoradores
Las funciones personalizadas tienen una amplia gama de usos; sin embargo, a veces es posible que desees agregar funcionalidad adicional a una función preexistente. Esto se llama decorador, es una función diseñada para mejorar una función existente, de ahí su nombre.
Para este nivel, los hornos deben prepararse para que estén listos para la preparación de alimentos. Utiliza decoradores para open() y close() entre la carga de leña en los hornos.

Objetivo
Llena los hornos con leña y configúralos para que estén listos para cocinar utilizando decoradores.
Los hornos de ladrillo deben ser preparados para que puedas hornear comida para más tarde en la noche. Los hornos están apagados y vacíos y necesitan leña para encenderse. Recoge un poco de leña y cárgala en los hornos para que puedas empezar a cocinar. Aunque puedes hacer esto manualmente o mediante una función personalizada, el proceso puede acelerarse utilizando decoradores.
Decorators son complementos que se pueden agregar a una función personalizada para expandir su funcionalidad bajo demanda sin necesidad de sobrecomplicarla con condiciones.
# 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)
Dirígete al almacén en la parte inferior del mapa y recoge los cuatro (4) montones de leña. Camina hasta la marca X dorada y utiliza la función read() para comprobar el memorándum en el cartel que muestra a qué temperaturas deben configurarse los hornos. Toma nota de la información en el pop up ya que la necesitarás más tarde.
Sigue esto caminando hacia las marcas X claras junto al horno y utiliza la función decorada para colocar la leña, de la siguiente manera: prep_oven(). Mientras colocas la leña en el horno, dirígete a las marcas X oscuras en las alfombras de colores y utiliza la función asíncrona question() para ajustar la temperatura de los hornos.
La función de soporte se configurará de antemano, se llamará set_temperature(), y tu respuesta a la pregunta determinará si la temperatura se establecerá en High o en Medium. Ajusta la temperatura escribiendo la función y respondiendo la pregunta con el memorándum que leíste anteriormente, con cada temperatura configurada de acuerdo con la alfombra de color correspondiente. Recuerda usar await al utilizar funciones asíncronas, de la siguiente manera: await set_temperature()
Una vez que prepares y configures los cuatro (4) hornos, habrás completado el nivel.