Coding for KidsCoding for Kids
Kreativní ÚrovněVýzvyPrůvodce pro Učitele
Hlasovat pro funkce
Pokročilý kurz vývoje v Pythonu
Kapitola
>
Úroveň

Pokročilé třídy
Přetížení porovnávacích operátorů

Cíl

Správně zkontrolujte a označte zásilky pomocí přetížení porovnávacích operátorů.

Na nakládacím doku se nachází několik sudů vína, které jsou připraveny k vyzvednutí do obchodů, avšak je třeba je nejprve označit a připravit tak, aby je pracovníci mohli bez problémů vybrat a odeslat. K tomu musíte použít Comparison Overloading, podobně jako Operator Overloading, který jste se naučili v předchozí kapitole – tento úkol vyžaduje přetížení třídy, tentokrát s porovnávacími operátory.

Na doku jsou tři (3) objednávky, každá se dvěma (2) sudy. Každá objednávka má ceduli, která má vyznačit poměr hmotnosti sudů v objednávce. V editoru je definována třída barrel, která umožňuje použití Comparison Overloading. V editoru jsou rovněž nastaveny tři (3) funkce: less_than(), greater_than() a equal_to(). Tyto funkce se používají k zaznamenání poměru hmotnosti na cedulích.

Začněte tím, že se vydáte k tmavým a světlým značkám X na červených kobercích a postavíte se k sudům. Použijte funkci read(), abyste zjistili název vína v sudu a jeho hmotnost, například takto: await player.read(). Vytvořte objekty pro tmavý a světlý sud pomocí třídy barrel a přidejte informace, které zjistíte z funkce read(). Jakmile budou objekty vytvořeny, vytvořte další objekt, který oba objekty porovná. Například:

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

Nezapomeňte zapsat název vína v objektu třídy barrel přesně tak, jak je zobrazen ve zprávě při použití funkce read().

Vytvořte objekty podle pojmenovacích konvencí odpovídajících kobercům a značkám X. Pro červený koberec, při porovnávání sudů, použijte operátor < k ověření, zda má tmavý sud menší hmotnost než světlý sud. Pro dokončení této části se vydejte ke zlaté značce X nad červeným kobercem a postavte se k ceduli. Použijte funkci less_than() s objektem porovnání k vyznačení poměru hmotnosti sudů, například takto: less_than(red_barrel_compare).

Dále se vydejte ke tmavým a světlým značkám X nad zeleným kobercem a opakujte stejný postup. Použijte funkci read() u tmavých a světlých značek X a vytvořte odpovídající objekty s těmito informacemi. Pro objekt porovnání zeleného koberce tentokrát použijeme operátor >, abychom ověřili, zda má tmavý sud větší hmotnost než světlý sud. Vydejte se ke zlaté značce X nad zeleným kobercem a postavte se k ceduli. Použijte funkci greater_than() s objektem porovnání k vyznačení poměru hmotnosti sudů, například takto: greater_than(green_barrel_compare).

Vydejte se k tmavým a světlým značkám X nad modrým kobercem a opakujte stejný postup. Použijte funkci read() u tmavých a světlých značek X a vytvořte odpovídající objekty s těmito informacemi. Pro objekt porovnání modrého koberce tentokrát použijeme operátor ==, abychom ověřili, zda má tmavý sud stejnou hmotnost jako světlý sud. Vydejte se ke zlaté značce X nad modrým kobercem a postavte se k ceduli. Použijte funkci equal_to() s objektem porovnání k vyznačení poměru hmotnosti sudů, například takto: equal_to(blue_barrel_compare).

Poté, co budou všechny objednávky označeny, vydejte se ke zlaté značce X nad oranžovým kobercem na východu z doku. Postavte se k ceduli a použijte funkci write(), abyste zaznamenali, co se nachází v každé objednávce – zapište názvy jednotlivých sudů podle vytvořených objektů, například u červených koberců: red_barrel_dark.name , red_barrel_light.name. Učiňte toto pro všechny tři dvojice sudů (celkem šest sudů), abyste dokončili úroveň.

Kniha Kódu