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

Avanserte klasser
Sammenligningsoverbelastning

Mål

Sjekk og merk forsendelser korrekt ved å bruke Sammenligningsoverlasting.

Dokken har noen vinfat som er klare til å bli tatt ut til butikkene, men som først må merkes og klargjøres slik at arbeiderne kan plukke dem ut og sende dem uten problemer. For å gjøre dette må du bruke Sammenligningsoverlasting, likt som Operatoroverlasting som du lærte i forrige kapittel, må du overbelaste en klasse, denne gangen med sammenligningsoperatorer.

Det er tre (3) bestillinger i dokken, hver med to (2) fat. Hver bestilling har et skilt ment å vise vektforholdet mellom fatene i bestillingen. Det finnes en klasse beskrevet i editoren kalt barrel som lar deg bruke Sammenligningsoverlasting. Det finnes også tre (3) funksjoner satt opp i editoren: less_than(), greater_than(), equal_to(). Disse funksjonene brukes til å dokumentere vektforholdet på skiltene.

Start med å gå til de mørke og lyse X-markeringene på de røde teppene og vend deg mot fatene. Bruk read()-funksjonen for å finne ut navnet på vinen i fatet, samt vekten på fatet, slik som: await player.read(). Opprett objekter for det mørke og lyse fatet ved å bruke barrel-klassen, og legg til informasjonen du får fra read()-funksjonen. Når objektene er opprettet, lag et annet objekt som sammenligner begge objektene. Som et eksempel:

red_barrel_dark = barrel("Wine name", 000) red_barrel_light = barrel("Wine name", 000) red_barrel_compare = red_barrel_dark < red_barrel_light

Pass på å skrive navnet på vinen i barrel-klasseobjektet nøyaktig slik det vises i meldingen når du bruker read().

Opprett objektene ved å bruke navnekonvensjonene i henhold til teppefarge og X-markering. For det røde teppet, når du sammenligner fatene, bruk <-operatoren for å sjekke om det mørke fatet har mindre vekt enn det lyse fatet. For å fullføre denne delen, gå til den gullfargede X-markeringen over det røde teppet og vend deg mot skiltet. Bruk funksjonen less_than() med sammenligningsobjektet for å kartlegge vektforholdet mellom fatene, slik som: less_than(red_barrel_compare).

Gå deretter til de mørke og lyse X-markeringene over det grønne teppet og gjenta samme prosess. Bruk read()-funksjonen på de mørke og lyse X-markeringene og opprett tilsvarende objekter med den informasjonen. For det grønne teppets sammenligningsobjekt, denne gangen bruker vi >-operatoren for å sjekke om det mørke fatet har større vekt enn det lyse fatet. Gå til den gullfargede X-markeringen over det grønne teppet og vend deg mot skiltet. Bruk funksjonen greater_than() med sammenligningsobjektet for å kartlegge vektforholdet mellom fatene, slik som: greater_than(green_barrel_compare).

Gå til de mørke og lyse X-markeringene over det blå teppet og gjenta samme prosess. Bruk read()-funksjonen på de mørke og lyse X-markeringene og opprett tilsvarende objekter med den informasjonen. For det blå teppets sammenligningsobjekt, denne gangen bruker vi ==-operatoren for å sjekke om det mørke fatet har lik vekt som det lyse fatet. Gå til den gullfargede X-markeringen over det blå teppet og vend deg mot skiltet. Bruk funksjonen equal_to() med sammenligningsobjektet for å kartlegge vektforholdet mellom fatene, slik som: equal_to(blue_barrel_compare).

Når alle bestillingene er merket, gå til den gullfargede X-markeringen over det oransje teppet på dokken for å gå ut. Vend deg mot skiltet og bruk write()-funksjonen for å skrive ned hva som finnes i hver bestilling. Skriv navnene på hvert av fatene i henhold til objektene du har opprettet, for eksempel for de røde teppefatene: red_barrel_dark.name , red_barrel_light.name. Gjør dette for alle seks fat for å fullføre nivået.

Kodebok