上級Python開発コース
チャプター
>
レベル
上級クラス
比較演算子のオーバーロード
目的
比較演算子のオーバーロードを使用して、出荷物を正しくチェックしてラベル付けを行います。
配送ドックには、店舗に搬出される準備ができたワイン樽がいくつかあります。しかし、それらはラベルを貼り、作業員が問題なく選び出して出荷できるように準備する必要があります。これを行うには、前の章で学習した演算子オーバーロードに類似した比較演算子のオーバーロードを使用します。今回は比較演算子を用いてクラスをオーバーロードする必要があります。
ドックには3つの注文があり、それぞれに2つの樽が含まれています。各注文には、その注文内の樽の重量比を示すサインが付いています。エディタには、比較演算子のオーバーロードを使用できる barrel というクラスが記載されています。また、エディタ内には less_than()、greater_than()、equal_to() の3つの関数が用意されており、これらの関数を使用してサイン上に重量比を表示します。
まず、赤いカーペット上の暗いXマークと明るい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
※ read() を使用したときに表示されるメッセージに記載されている通り、樽クラスのオブジェクトにワインの名前を正確に書いてください。
オブジェクトは、カーペットと色のXマークに応じた命名規則に従って作成してください。赤いカーペットの場合、樽を比較する際に、暗い樽が明るい樽より軽い重量であることを確認するために < 演算子を使用します。このセグメントを完了するために、赤いカーペット上の金色のXマークへ歩み、サインの前に進んでください。less_than() 関数を比較オブジェクトに使用して、樽の重量比を記録します。例: less_than(red_barrel_compare)。
次に、緑のカーペット上の暗いXマークと明るいXマークへ歩み、同じプロセスを繰り返します。暗いXマークと明るいXマークで read() 関数を使用し、その情報から対応するオブジェクトを作成してください。緑のカーペットの比較オブジェクトについては、今回は > 演算子を使用して、暗い樽が明るい樽よりも重い重量であることを確認します。緑のカーペット上の金色のXマークへ歩み、サインの前に進んでください。greater_than() 関数を比較オブジェクトに使用して、樽の重量比を記録します。例: greater_than(green_barrel_compare)。
青いカーペット上の暗いXマークと明るいXマークへ歩み、同じプロセスを繰り返します。暗いXマークと明るいXマークで read() 関数を使用し、その情報から対応するオブジェクトを作成してください。青いカーペットの比較オブジェクトについては、今回は == 演算子を使用して、暗い樽と明るい樽の重量が等しいかどうかを確認します。青いカーペット上の金色のXマークへ歩み、サインの前に進んでください。equal_to() 関数を比較オブジェクトに使用して、樽の重量比を記録します。例: equal_to(blue_barrel_compare)。
すべての注文にラベルが貼られたら、ドック上のオレンジのカーペット上にある金色のXマークへ歩み、出口に向かってください。サインの前に立ち、write() 関数を使用して各注文の内容を記録してください。例えば、赤いカーペットの樽の場合は、red_barrel_dark.name , red_barrel_light.name と記述します。レベルを完了するために、すべての6つの樽についてこれを行ってください。