Edistynyt Python-kehityskurssi
Luku
>
Taso
Edistyneet luokat
Vertailu ylikuormitus
Tavoite
Tarkista ja merkitse lähetykset oikein käyttäen Vertailuylikuormitusta.
Laiturilla on joitakin viinastakkeja, jotka ovat valmiina viedä kauppoihin, mutta ne on ensin merkitty ja valmisteltava, jotta työntekijät voivat valita ne ja lähettää ne ongelmitta. Tämä edellyttää Vertailuylikuormituksen käyttöä, samalla tavoin kuin edellisessä luvussa opittu Operaattorin ylikuormitus; tällä kertaa sinun on ylikuormitettava luokka vertailuoperaattoreilla.
Laiturilla on kolme (3) tilausta, joista jokaisessa on kaksi (2) tippaa. Jokaisessa tilauksessa on kyltti, jonka tarkoituksena on osoittaa tippien painosuhde tilauksessa. Editorissa on määritelty luokka nimeltä barrel, joka mahdollistaa Vertailuylikuormituksen käytön. Editorissa on myös kolme (3) funktiota: less_than(), greater_than() ja equal_to(). Näitä funktioita käytetään tippien painosuhteen dokumentointiin kylteissä.
Aloita kävelemällä pimeiden ja vaaleiden X-merkkien luo punaisella matolla ja suuntaa tippaa kohti. Käytä read()-funktiota selvittääksesi tippaan sisältyvän viinin nimen sekä tippaan kohdistuvan painon, esimerkiksi näin: await player.read(). Luo objektit pimeälle ja vaalealle tipalle käyttäen barrel-luokkaa ja lisää niihin read()-funktion avulla havaitsemasi tiedot. Kun objektit on luotu, luo toinen objekti, joka vertailee molempia. Esimerkkinä:
red_barrel_dark = barrel("Wine name", 000) red_barrel_light = barrel("Wine name", 000) red_barrel_compare = red_barrel_dark < red_barrel_light
Muista kirjoittaa tippaluokan objektissa oleva viinin nimi täsmälleen samalla tavalla kuin se näytetään viestissä, kun käytät read()-funktiota.
Luo objektit noudattaen mattojen ja värien X-merkkien nimeämiskäytäntöjä. Punaisella matolla, kun vertailet tippoja, käytä <-operaattoria tarkistaaksesi, onko pimeä tippa kevyempi kuin vaalea tippa. Kun tämä osio on valmis, kävele kultaista X-merkkiä kohti punaisella matolla ja suuntaa kylttiä kohti. Käytä funktiota less_than() vertailuobjektin kanssa piirtääksesi tippien painosuhteen kaavion, esimerkiksi näin: less_than(red_barrel_compare).
Seuraavaksi kävele pimeiden ja vaaleiden X-merkkien luo vihreällä matolla ja toista sama prosessi. Käytä read()-funktiota pimeille ja vaaleille X-merkeille ja luo vastaavat objektit näiden tietojen perusteella. Vihreän maton vertailuobjektissa käytetään tällä kertaa >-operaattoria tarkistaaksesi, onko pimeä tippa raskaampi kuin vaalea tippa. Kävele kultaista X-merkkiä kohti vihreällä matolla ja suuntaa kylttiä kohti. Käytä funktiota greater_than() vertailuobjektin kanssa piirtääksesi tippien painosuhteen kaavion, esimerkiksi näin: greater_than(green_barrel_compare).
Kävele pimeiden ja vaaleiden X-merkkien luo sinisellä matolla ja toista sama prosessi. Käytä read()-funktiota pimeille ja vaaleille X-merkeille ja luo vastaavat objektit näiden tietojen perusteella. Sinisen maton vertailuobjektissa käytetään tällä kertaa ==-operaattoria tarkistaaksesi, onko pimeä tippa yhtä painava kuin vaalea tippa. Kävele kultaista X-merkkiä kohti sinisellä matolla ja suuntaa kylttiä kohti. Käytä funktiota equal_to() vertailuobjektin kanssa piirtääksesi tippien painosuhteen kaavion, esimerkiksi näin: equal_to(blue_barrel_compare).
Kun kaikki tilaukset on merkitty, kävele kultaista X-merkkiä kohti oranssilla matolla laiturin poistumisaukkoon. Suuntaa kylttiä kohti ja käytä write()-funktiota kirjataksesi ylös, mitä kussakin tilauksessa on. Kirjoita kunkin tipan nimet niiden objektien mukaisesti, esimerkiksi punaisen maton tapauksessa: red_barrel_dark.name , red_barrel_light.name. Toimi näin kaikkien kuuden tipan osalta, jotta saat tason suoritettua.