Avanceret Python Udviklingskursus
Kapitel
>
Niveau
Dekoratorer
Brug af dekoratører
Brugerdefinerede funktioner har et bredt anvendelsesområde, men nogle gange kan det være, at du ønsker at tilføje ekstra funktionalitet til en eksisterende funktion. Dette kaldes en decorator, det er en funktion designet til at udvide en eksisterende funktion, deraf navnet.
For dette niveau skal ovnene forberedes, så de er klar til madlavning. Brug decorators til at open() og close() imellem indlæsningen af brænde i ovnene.

Mål
Fyld ovnene med brænde og indstil ovnene, så de kan forberedes til madlavning ved hjælp af decorators.
Murstensovnene skal gøres klar, så du kan bage mad til senere på aftenen. Ovne er slukkede og tomme og kræver noget brænde for at blive antændt. Tag noget brænde og få det læsset i ovnene, så du kan begynde at lave mad. Du kan gøre dette manuelt eller ved at bruge en brugerdefineret funktion, men processen kan fremskyndes ved at bruge decorators.
Decorators er tilføjelser, der kan føjes til en brugerdefineret funktion for at udvide dens funktionalitet efter behov, uden at skulle overkomplicere den med betingelser.
# 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)
Gå til lagerlokalet nederst på kortet og samle alle fire (4) bundter af brænde. Gå til det gyldne X-mærke og brug read()-funktionen for at tjekke notatet på baren, som viser, hvilke temperaturer ovnene skal indstilles til. Notér oplysningerne i pop op-vinduet, da du får brug for dem senere.
Herefter skal du gå til de lyse X-mærker ved ovnen og bruge den dekorerede funktion til at placere brændet, således: prep_oven(). Når du lægger brændet i ovnen, skal du gå til de mørke X-mærker på de farvede tæpper og bruge den asynkrone question()-funktion til at indstille temperaturen på ovnene.
Den understøttende funktion vil blive forud opsat og hedde set_temperature(), og dit svar på spørgsmålet vil afgøre, om temperaturen bliver indstillet til High eller Medium. Indstil temperaturen ved at skrive funktionen og besvare spørgsmålet med det notat, du læste tidligere, med hver temperatur sat i overensstemmelse med det tilsvarende farvede tæppe. Husk at bruge await, når du anvender asynkrone funktioner, således: await set_temperature()
Når du har forberedt og indstillet alle fire (4) ovne, har du gennemført niveauet.