Coding for KidsCoding for Kids
Kreative NivåerUtfordringerLærerveiledning
Stem på funksjoner
Avansert Pythonutviklingskurs
Kapittel
>
Nivå

Dekoratorer
Bruke dekoratører

Tilpassede funksjoner har et bredt spekter av anvendelser, men noen ganger kan det være ønskelig å legge til ekstra funksjonalitet i en allerede eksisterende funksjon. Dette kalles en dekoratør, en funksjon designet for å utvide en eksisterende funksjon, derav navnet.

For dette nivået må ovnene forberedes for å gjøre dem klare for matlaging. Bruk dekoratører til å open() og close() mens du legger ved ved i ovnene.

Guide

Mål

Fyll ovnene med ved og still inn ovnene slik at de kan gjøres klare for matlaging ved hjelp av dekoratører.

Teglovnene må gjøres klare slik at du kan bake mat til senere på kvelden. Ovnene er av og tomme og trenger litt ved for å bli tent opp. Ta litt ved og få det lastet inn i ovnene slik at du kan begynne å lage mat. Selv om du kan gjøre dette manuelt eller ved å bruke en egendefinert funksjon, kan prosessen likevel akselereres ved å bruke dekoratører.

Dekoratører er tillegg som kan legges til en egendefinert funksjon for å utvide funksjonaliteten på forespørsel uten å måtte overkomplisere 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 lagerrommet nederst på kartet og samle alle de fire (4) tømmerbuntene. Gå til gull X-markeringen og bruk funksjonen read() for å sjekke notatet på disken som viser hvilke temperaturer ovnene skal stilles til. Noter informasjonen i pop-up-vinduet, for du vil trenge den senere.

Fortsett deretter med å gå til de lyse X-markeringene ved ovnen og bruk den dekorerte funksjonen for å legge ved, slik: prep_oven(). Mens du legger ved i ovnen, gå til de mørke X-markeringene på de fargede teppene og bruk den asynkrone funksjonen question() for å stille inn temperaturen på ovnene.

Den støttende funksjonen vil bli satt opp på forhånd, kalt set_temperature(), og ditt svar på spørsmålet vil avgjøre om temperaturen settes til High eller Medium. Still inn temperaturen ved å skrive funksjonen og besvare spørsmålet med notatet du leste tidligere, med hver temperatur satt i samsvar med den tilhørende fargede teppen. Husk å bruke await når du bruker asynkrone funksjoner, slik: await set_temperature()

Når du har forberedt og stilt inn alle de fire (4) ovnene, har du fullført nivået.

Kodebok