Fejlett Python fejlesztési tanfolyam
Fejezet
>
Szint
Haladó osztályok
Összehasonlító túlterhelés
Célkitűzés
Ellenőrizd és címkézd fel helyesen a szállítmányokat a Comparison Overloading használatával.
A kikötőben van néhány boros hordó, amelyek készen állnak arra, hogy az üzletekbe szállítsák őket, azonban először címkézni és előkészíteni kell őket, hogy a munkások gond nélkül kiválaszthassák és szállíthassák őket. Ehhez a feladathoz használnod kell a Comparison Overloading-ot, amely hasonló az előző fejezetben tanult Operator Overloading-hoz, de most összehasonlító operátorokkal kell túlterhelni egy osztályt.
A kikötőben három (3) rendelés található, mindegyikben két (2) hordóval. Minden rendeléshez tartozik egy tábla, amely a rendelés hordóinak súlyarányát mutatja. Az editorban található egy barrel nevű osztály, amely lehetővé teszi a Comparison Overloading használatát. Az editorban három (3) függvény is elérhető: less_than() , greater_than() , equal_to(), ezek a függvények a tábla súlyarányának megjelenítésére szolgálnak.
Kezdd azzal, hogy elindulsz a vörös szőnyegeken lévő sötét és világos X jelzésekhez, és fordulj a hordók felé; használd a read() függvényt, hogy meghatározd a hordóban lévő bor nevét, valamint a hordó súlyát, például így: await player.read().
Hozz létre objektumokat a sötét és világos hordók számára a barrel osztály segítségével, és add hozzá azt az információt, amit a read() függvény segítségével azonosítasz. Miután az objektumok elkészültek, hozz létre egy újabb objektumot, amely összehasonlítja a két objektumot. Például:
red_barrel_dark = barrel("Wine name", 000) red_barrel_light = barrel("Wine name", 000) red_barrel_compare = red_barrel_dark < red_barrel_light
Ügyelj rá, hogy a hordó osztály objektumában a bor nevét pontosan úgy írd, ahogy azt az üzenet megjeleníti, amikor a read() függvényt használod.
Hozd létre az objektumokat a szőnyeghez és a X jelzés színéhez tartozó névadási konvenciók szerint. A vörös szőnyeg esetében a hordók összehasonlításakor használd a < operátort annak ellenőrzésére, hogy a sötét hordó kisebb súlyú-e, mint a világos hordó. A szakasz befejezéséhez menj a vörös szőnyegen található arany X jelzéshez és fordulj a táblához. Használd a less_than() függvényt az összehasonlító objektummal a hordók súlyarányának megjelenítésére, például így: less_than(red_barrel_compare) .
Ezután menj a zöld szőnyegen található sötét és világos X jelzésekhez, és ismételd meg ugyanazt a folyamatot. Használd a read() függvényt a sötét és világos X jelzéseknél, és hozd létre a megfelelő objektumokat ezekkel az információkkal. A zöld szőnyeg esetében az összehasonlító objektumhoz eztúttal a > operátort fogjuk használni annak ellenőrzésére, hogy a sötét hordó nagyobb súlyú-e, mint a világos hordó. Menj az arany X jelzéshez a zöld szőnyegen és fordulj a táblához. Használd a greater_than() függvényt az összehasonlító objektummal a hordók súlyarányának megjelenítésére, például így: greater_than(green_barrel_compare) .
Menj a kék szőnyegen található sötét és világos X jelzésekhez, és ismételd meg ugyanazt a folyamatot. Használd a read() függvényt a sötét és világos X jelzéseknél, és hozd létre a megfelelő objektumokat ezekkel az információkkal. A kék szőnyeg esetében az összehasonlító objektumhoz eztúttal a == operátort fogjuk használni annak ellenőrzésére, hogy a sötét hordó egyenlő súlyú-e, mint a világos hordó. Menj az arany X jelzéshez a kék szőnyegen és fordulj a táblához. Használd az equal_to() függvényt az összehasonlító objektummal a hordók súlyarányának megjelenítésére, például így: equal_to(blue_barrel_compare) .
Miután az összes rendelést felcímkézted, menj az orosz szőnyegen található arany X jelzéshez a kikötő kijáratánál. Fordulj a táblához, és használd a write() függvényt, hogy leírd, mi szerepel az egyes rendelésekben; írd le a hordók neveit az általad létrehozott objektumok alapján, például a vörös szőnyeg esetében: red_barrel_dark.name , red_barrel_light.name . Ezt tedd meg mind a hat hordó esetében a szint befejezéséhez.