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

Avanserte Klasser
Superfunksjon

Mål

Samle ulike typer kjøtt, kok dem og server dem på forskjellige måter ved å lage objekter med superfunksjoner.

Kjøleskapet har ulike typer kjøtt som du kan koke og servere med løken du forberedte med olje i forrige nivå. Kjøttet kan kokes på forskjellige måter og til ulike temperaturer/grad av steking; du kan oppnå dette ved å lage objekter fra klasser, på samme måte som i tidligere nivåer, men det kan forbedres med bruk av Superfunksjoner.

Funksjonen super() brukes på en lignende måte som metodeoverstyring, men forskjellen er at ved å bruke denne funksjonen kan du kjøre forelderklassens funksjon i tillegg til din egen kode i barneklassen, i stedet for å fullstendig overstyre funksjonen.

# Parent Class class cooked_meat: type = "" def cook_meat(self): player.speak("Cooking the %s meat with oil and onions." % self.type) player.place("meat") player.collect("cooked %s" % self.type) # Child Class class ready_meat(cooked_meat): rarity = "" def cook_meat(self): super().cook_meat() player.speak("The meat is cooked %s" % self.rarity)

Inne i barneklassens funksjon cook_meat(), brukes funksjonen super(). Siden cook_meat() også er en funksjon i forelderklassen, ville den tilpassede funksjonen normalt overstyre den arvede koden på grunn av metodeoverstyring, men ved å bruke funksjonen super() kan du kjøre koden i forelderklassen samt den nye koden du skriver i barneklassen.

Gå først til kjøleskapet og hent de fire (4) kjøttstykkene du skal bruke til matlaging. Hvert av de fire (4) stykkene er av en forskjellig type: "pork", "beef", "lamb" og "buffalo".

Når du har samlet dem, gå til det lyse X-merket og lag objekter for hvert av kjøttstykkene slik at du kan koke dem, og for hvert kjøttobjekt, sett typen kjøtt og den ønskede tilberedningsgraden, for eksempel:

pork_meat = ready_meat() pork_meat.type = "pork" pork_meat.rarity = "medium" pork_meat.cook_meat()

Tilberedningsgrad er den koketemperaturen du ønsker at kjøttet skal kokes ved. Ha kjøttet kokt til følgende grader: "pork" kokt "medium", "beef" kokt "well done", "buffalo" kokt "medium rare", og "lamb" kokt "rare". Ved X-merket, bruk barneklassens funksjon cook_meat() etter å ha satt typen og tilberedningsgraden for kjøttet slik som vist i eksempelet ovenfor.

Når kjøttet er kokt, gå til det mørke X-merket på det gule teppet og bruk funksjonen collect() for å hente både "salt" og "pepper" fra spiskammeret. Lag en liste kalt ingredients og legg til de to ingrediensene du har hentet, slik som dette: ingredients = ["salt","pepper"].

Med de ekstra ingrediensene kan du nå servere kjøttet med tallerkener på bordet. Lag en liste for hvert av de kokte kjøttstykkene med følgende navn: served_pork, served_beef, served_lamb og served_buffalo. Legg til i disse listene kjøttet du har kokt, sammen med ingredienslisten, ved å opprette en nested list, for eksempel:

served_pork = [] served_pork.append("cooked pork") served_pork.append(ingredients)

Når listene er satt opp, gå til de gylne X-merkene og bruk funksjonen place() for å servere kjøttet på tallerkenene som ligger på benkene. Ved det øverste gylne X-merket, vend deg mot bordet og place() følgende: served_pork og served_buffalo. Ved det nederste gylne X-merket, vend deg mot bordet og place() følgende: served_lamb og served_beef. For eksempel: player.place(served_pork). Når alt kjøttet er servert, har du fullført nivået.

Kodebok