Coding for KidsCoding for Kids
Yaratıcı SeviyelerZorluklarÖğretmen Kılavuzu
Özellikler için oy verin
Gelişmiş Python Geliştirme Kursu
Bölüm
>
Seviye

İleri Düzey Sınıflar
Karşılaştırma Aşırı Yükleme

Amaç

Karşılaştırma Aşırı Yüklemesi kullanılarak gönderileri doğru şekilde kontrol edin ve etiketleyin.

Liman alanında, mağazalara götürülmeye hazır bazı şarap varilleri bulunmaktadır; ancak bu varillerin etiketlenip hazırlanması gerekmektedir, böylece işçiler varilleri sorunsuzca seçip gönderebilirler. Bunu yapmak için, önceki bölümde öğrenilen Operator Overloading'e benzer şekilde, Comparison Overloading kullanmalısın; bu sefer karşılaştırma operatörleriyle bir sınıfı aşırı yüklemelisin.

Liman alanında, her biri iki (2) varile sahip üç (3) sipariş bulunmaktadır. Her siparişin, sipariş içindeki varillerin ağırlık oranını belirten bir tabelası vardır. Düzenleyicide, Comparison Overloading kullanmanı sağlayan barrel adlı bir sınıf tanımlanmıştır. Düzenleyicide ayrıca üç (3) fonksiyon bulunmaktadır: less_than(), greater_than(), equal_to(). Bu fonksiyonlar, tabelalardaki ağırlık oranını belgelemek için kullanılır.

Kırmızı halılardaki koyu ve açık X işaretlerine yürüyerek varillere doğru ilerle; varillerdeki şarabın adını ve varilin ağırlığını belirlemek için read() fonksiyonunu kullan, örneğin: await player.read().

Koyu ve açık variller için, barrel sınıfını kullanarak nesneler oluştur ve read() fonksiyonundan belirlediğin bilgileri ekle. Nesneler oluşturulduktan sonra, iki nesneyi karşılaştıran başka bir nesne oluştur. Örnek olarak:

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

read() kullandığında, mesajda görüntülendiği gibi varil sınıfı nesnesinde şarabın adını tam olarak yazdığın koda dikkat et.

Nesneleri, halı ve renk X işaretine göre belirlenen adlandırma kurallarını kullanarak oluştur. Kırmızı halı için, varilleri karşılaştırırken koyu varilin açık varilden daha hafif olup olmadığını kontrol etmek için < operatörünü kullan. Bu bölümü tamamlamak için, kırmızı halı üzerindeki altın X işaretine yürüyüp tabelaya yüz dön; varillerin ağırlık oranını belirlemek için karşılaştırma nesnesi ile less_than() fonksiyonunu kullan, örneğin: less_than(red_barrel_compare).

Sonra, yeşil halı üzerindeki koyu ve açık X işaretlerine yürüyüp aynı işlemi tekrarla. Koyu ve açık X işaretlerinde read() fonksiyonunu kullan ve bu bilgileri içeren ilgili nesneleri oluştur. Yeşil halı karşılaştırma nesnesi için, bu sefer koyu varilin açık varilden daha ağır olup olmadığını kontrol etmek için > operatörünü kullanacağız. Yeşil halı üzerindeki altın X işaretine yürüyüp tabelaya yüz dön; varillerin ağırlık oranını belirlemek için karşılaştırma nesnesi ile greater_than() fonksiyonunu kullan, örneğin: greater_than(green_barrel_compare).

Mavi halı üzerindeki koyu ve açık X işaretlerine yürüyüp aynı işlemi tekrarla. Koyu ve açık X işaretlerinde read() fonksiyonunu kullan ve bu bilgileri içeren ilgili nesneleri oluştur. Mavi halı karşılaştırma nesnesi için, bu sefer koyu varilin açık varile eşit ağırlıkta olup olmadığını kontrol etmek için == operatörünü kullanacağız. Mavi halı üzerindeki altın X işaretine yürüyüp tabelaya yüz dön; varillerin ağırlık oranını belirlemek için karşılaştırma nesnesi ile equal_to() fonksiyonunu kullan, örneğin: equal_to(blue_barrel_compare).

Tüm siparişler etiketlendikten sonra, liman çıkışındaki turuncu halı üzerindeki altın X işaretine yürüyün. Tabelaya yüz dönüp her siparişte nelerin olduğunu not almak için write() fonksiyonunu kullan; oluşturduğun nesnelere göre varillerin adlarını yaz, örneğin kırmızı halı varilleri için: red_barrel_dark.name , red_barrel_light.name. Seviyeyi tamamlamak için bu işlemi tüm altı varil için yap.

Kod Kitabı