Zaawansowany kurs programowania w Pythonie
Rozdział
>
Poziom
Zaawansowane klasy
Przeciążanie operatorów porównania
Cel
Sprawdź i prawidłowo oznacz przesyłki, używając Comparison Overloading.
Nabrzeże zawiera beczki z winem, które są gotowe do wysłania do sklepów, jednak najpierw muszą zostać oznakowane i przygotowane, aby pracownicy mogli je wybrać i wysłać bez problemu. Aby to zrobić, musisz użyć Comparison Overloading, podobnie jak Operator Overloading, którego nauczyłeś się w poprzednim rozdziale. Musisz przeciążyć klasę, tym razem z użyciem operatorów porównania.
Na nabrzeżu znajdują się trzy (3) zamówienia, każde z dwoma (2) beczkami. Każde zamówienie posiada tabliczkę, która ma na celu przedstawienie stosunku wagowego beczek w zamówieniu.
W edytorze znajduje się klasa o nazwie barrel, która pozwala na użycie Comparison Overloading. W edytorze znajdują się również trzy (3) funkcje: less_than(), greater_than(), equal_to(). Funkcje te służą do przedstawienia stosunku wagowego na tabliczkach.
Rozpocznij od przejścia do ciemnych i jasnych znaków X na czerwonych dywanach i stawienia czoła beczkom. Użyj funkcji read(), aby określić nazwę wina w beczce oraz jej wagę, w następujący sposób: await player.read().
Utwórz obiekty dla ciemnych i jasnych beczek, korzystając z klasy barrel, i dodaj do nich informacje uzyskane za pomocą funkcji read(). Gdy obiekty zostaną utworzone, stwórz kolejny obiekt, który porówna obie beczki. Na przykład:
red_barrel_dark = barrel("Wine name", 000) red_barrel_light = barrel("Wine name", 000) red_barrel_compare = red_barrel_dark < red_barrel_light
Upewnij się, że wpiszesz nazwę wina w obiekcie klasy barrel dokładnie tak, jak jest wyświetlana w komunikacie, gdy używasz read().
Utwórz obiekty, stosując konwencje nazewnicze odpowiadające dywanowi i kolorowi znaku X. Dla czerwonego dywanu, porównując beczki, użyj operatora <, aby sprawdzić, czy ciemna beczka waży mniej niż jasna. Aby zakończyć ten segment, idź do złotego znaku X na czerwonym dywanie i staw czoła tabliczce. Użyj funkcji less_than() z obiektem porównania, aby przedstawić stosunek wagowy beczek, w następujący sposób: less_than(red_barrel_compare).
Następnie idź do ciemnego i jasnego znaku X na zielonym dywanie i powtórz ten sam proces. Użyj funkcji read() przy ciemnym i jasnym znaku X i utwórz odpowiednie obiekty z uzyskanymi informacjami. Dla obiektu porównania na zielonym dywanie tym razem użyjemy operatora >, aby sprawdzić, czy ciemna beczka waży więcej niż jasna. Przejdź do złotego znaku X na zielonym dywanie i staw czoła tabliczce. Użyj funkcji greater_than() z obiektem porównania, aby przedstawić stosunek wagowy beczek, w następujący sposób: greater_than(green_barrel_compare).
Przejdź do ciemnego i jasnego znaku X na niebieskim dywanie i powtórz ten sam proces. Użyj funkcji read() przy ciemnym i jasnym znaku X i utwórz odpowiednie obiekty z uzyskanymi informacjami. Dla obiektu porównania na niebieskim dywanie tym razem użyjemy operatora ==, aby sprawdzić, czy ciemna beczka waży tyle samo co jasna. Przejdź do złotego znaku X na niebieskim dywanie i staw czoła tabliczce. Użyj funkcji equal_to() z obiektem porównania, aby przedstawić stosunek wagowy beczek, w następujący sposób: equal_to(blue_barrel_compare).
Gdy wszystkie zamówienia zostaną oznakowane, udaj się do złotego znaku X na pomarańczowym dywanie przy wyjściu z nabrzeża. Staw czoła tabliczce i użyj funkcji write(), aby zapisać, co znajduje się w każdym zamówieniu; wypisz nazwy każdej beczki zgodnie z utworzonymi obiektami, na przykład dla beczek na czerwonym dywanie: red_barrel_dark.name , red_barrel_light.name. Zrób to dla wszystkich sześciu beczek, aby ukończyć poziom.