Avanceret Python Udviklingskursus
Kapitel
>
Niveau
Avancerede klasser
Sammenligningsoverbelastning
Mål
Kontroller og mærk forsendelser korrekt ved hjælp af Comparison Overloading.
Skibsdokken har nogle vinfade, der er klar til at blive kørt ud til butikker, men de skal mærkes og forberedes, så arbejdere nemt kan udvælge dem og sende dem uden problemer. For at gøre dette skal du bruge Comparison Overloading, svarende til Operator Overloading, som du lærte i forrige kapitel. Du skal overbelaste en klasse, denne gang med sammenligningsoperatorer.
Der er tre (3) ordrer i dokken, hver med to (2) fade. Hver ordre har et skilt, der skal vise vægtforholdet mellem fadene i ordren. Der er en klasse beskrevet i editoren ved navn barrel, som gør det muligt at bruge Comparison Overloading. Der er også tre (3) funktioner opsat i editoren: less_than() , greater_than() , equal_to(), disse funktioner bruges til at dokumentere vægtforholdet på skiltene.
Start med at gå hen til de mørke og lyse X-mærker på de røde tæpper og vend mod fadene; brug funktionen read() for at bestemme navnet på vinen i fadet samt fadets vægt, sådan her: await player.read(). Opret objekter for de mørke og lyse fade ved at bruge barrel-klassen, og tilføj de oplysninger, du identificerer fra read() funktionen. Når objekterne er oprettet, skal du oprette et andet objekt, der sammenligner de to objekter. For eksempel:
red_barrel_dark = barrel("Wine name", 000) red_barrel_light = barrel("Wine name", 000) red_barrel_compare = red_barrel_dark < red_barrel_light
Sørg for at skrive navnet på vinen i barrel-klasse objektet præcis som det vises i beskeden, når du bruger read().
Opret objekterne med navngivningskonventionerne i henhold til tæppet og farven på X-mærket. For det røde tæppe, når du sammenligner fadene, skal du bruge < operatoren for at tjekke, om det mørke fad har en lavere vægt end det lyse fad. For at afslutte dette segment, gå til det guld X-mærke over det røde tæppe og vend mod skiltet. Brug funktionen less_than() med sammenligningsobjektet for at registrere vægtforholdet mellem fadene, sådan her: less_than(red_barrel_compare).
Gå derefter til de mørke og lyse X-mærker over det grønne tæppe og gentag den samme proces. Brug funktionen read() på de mørke og lyse X-mærker og opret tilsvarende objekter med denne information. Til det grønne tæppets sammenligningsobjekt, denne gang bruger vi > operatoren for at tjekke, om det mørke fad har en større vægt end det lyse fad. Gå til det guld X-mærke over det grønne tæppe og vend mod skiltet. Brug funktionen greater_than() med sammenligningsobjektet for at registrere vægtforholdet mellem fadene, sådan her: greater_than(green_barrel_compare).
Gå til de mørke og lyse X-mærker over det blå tæppe og gentag den samme proces. Brug funktionen read() på de mørke og lyse X-mærker og opret tilsvarende objekter med denne information. Til det blå tæppets sammenligningsobjekt, denne gang bruger vi == operatoren for at tjekke, om det mørke fad har samme vægt som det lyse fad. Gå til det guld X-mærke over det blå tæppe og vend mod skiltet. Brug funktionen equal_to() med sammenligningsobjektet for at registrere vægtforholdet mellem fadene, sådan her: equal_to(blue_barrel_compare).
Når alle ordrer er mærket, gå til det guld X-mærke over det orange tæppe ved dokkens udgang. Vend mod skiltet og brug funktionen write() for at registrere, hvad der er på hver ordre, skriv navnene på hvert af fadene ifølge de objekter, du har oprettet, for eksempel når det gælder de røde tæppe fade: red_barrel_dark.name , red_barrel_light.name. Gør dette for alle seks fade for at fuldføre niveauet.