Курс по усъвършенствано разработване с Python
Глава
>
Ниво
Напреднали класове
Претоварване на операторите за сравнение
Цел
Проверете и обозначете пратките правилно, като използвате претоварване на сравнения.
При складовото място има няколко бъчви вино, готови да бъдат изпратени към магазините, но първо трябва да бъдат етикетирани и подготвени, така че работниците да могат безпроблемно да ги изберат и изпратят. За да направите това, трябва да използвате Претоварване на сравнения, подобно на Претоварване на оператори, изучено в предишната глава; трябва да претоварите клас, този път с оператори за сравнение.
Има три (3) поръчки в склада, всяка с две (2) бъчви. Всяка поръчка има знак, предназначен да определи коефициента на тегло на бъчвите в поръчката. В редактора има описан клас с име barrel, който ви позволява да използвате Претоварване на сравнения. Също така има три (3) функции, зададени в редактора: less_than(), greater_than(), equal_to(). Тези функции се използват за обозначаване на тегловия коефициент върху знаците.
Започнете, като отидете към тъмните и светлите X маркировки върху червения килим и се обърнете към бъчвите. Използвайте функцията read(), за да определите името на виното в бъчвата, както и теглото на бъчвата, по следния начин: await player.read().
Създайте обекти за тъмните и светлите бъчви, използвайки класа barrel, и добавете информацията, която идентифицирате чрез функцията read(). След като създадете обектите, създайте още един обект, който сравнява двата обекта. Например:
red_barrel_dark = barrel("Wine name", 000) red_barrel_light = barrel("Wine name", 000) red_barrel_compare = red_barrel_dark < red_barrel_light
Уверете се, че въведете името на виното в обекта от класа barrel точно както е показано в съобщението, когато използвате read().
Създайте обектите, използвайки именовите конвенции според килима и цветовата X маркировка. За червения килим, когато сравнявате бъчвите, използвайте оператора <, за да проверите дали тъмната бъчва тежи по-малко от светлата. За да завършите този сегмент, отидете до златната X маркировка върху червения килим и се обърнете към знака. Използвайте функцията less_than() с обекта за сравнение, за да обозначите тегловия коефициент на бъчвите, по следния начин: less_than(red_barrel_compare).
След това отидете към тъмните и светлите X маркировки върху зеления килим и повторете същия процес. Използвайте функцията read() върху тъмните и светлите X маркировки и създайте съответните обекти с тази информация. За обекта за сравнение на зеления килим, този път ще използваме оператора >, за да проверим дали тъмната бъчва тежи повече от светлата. Отидете до златната X маркировка върху зеления килим и се обърнете към знака. Използвайте функцията greater_than() с обекта за сравнение, за да обозначите тегловия коефициент на бъчвите, по следния начин: greater_than(green_barrel_compare).
Отидете към тъмните и светлите X маркировки върху синия килим и повторете същия процес. Използвайте функцията read() върху тъмните и светлите X маркировки и създайте съответните обекти с тази информация. За обекта за сравнение на синия килим, този път ще използваме оператора ==, за да проверим дали тъмната бъчва тежи еднакво с светлата. Отидете до златната X маркировка върху синия килим и се обърнете към знака. Използвайте функцията equal_to() с обекта за сравнение, за да обозначите тегловия коефициент на бъчвите, по следния начин: equal_to(blue_barrel_compare).
След като всички поръчки бъдат обозначени, отидете до златната X маркировка върху портокаления килим на склада и излезте. Обърнете се към знака и използвайте функцията write(), за да запишете какво има върху всяка поръчка. Запишете имената на всяка от бъчвите според обектите, които сте създали, например когато става въпрос за бутиите от червения килим: red_barrel_dark.name , red_barrel_light.name. Направете това за всичките шест бъчви, за да завършите нивото.