Yükleniyor...

Nesneleri birleştirmek

blue rengi kaleme aittir; bag o kalemi yalnızca taşır ve kendi rengi yoktur, bu yüzden Bag, Pen'in alt sınıfı değildir. Önce Pen("blue") ile kalemi yaparsınız, sonra Bag(pen) ile onu çantaya koyarsınız. Bu sırada ne bir paket kurulur ne de bir klasör oluşur.

Çantanın içindeki kalem

python
class Pen:
    def __init__(self, color):
        self.color = color

class Bag:
    def __init__(self, pen):
        self.pen = pen

pen = Pen("blue")
bag = Bag(pen)
print(bag.pen.color)

Renge ulaşmak için önce bag üzerinden pen'e, oradan da color'a geçersiniz: bag.pen.color. bag.pen ikinci bir kalem değildir; yaptığınız kalemin ta kendisidir. O yüzden pen.color ile bag.pen.color aynı blue sözcüğünü verir. bag'in kendine ait bir color değeri yoktur, o yalnızca kalemi taşır. print yalnızca bu tek sözcüğü yazar: önüne badge eklenmez, 4 sayısı yazılmaz, ikinci bir satır da çıkmaz.

Çantaya kalem, class Bag yazmakla girmez; Bag(pen) çalışınca girer. Tam o anda çantanın init metodu çalışır ve self o çantadır.

📊 Adlar ve anlamları

Yazdığınız Anlamı
pen yaptığınız kalem, blue onda kalır
bag.pen aynı kalem, bu kez çantanın içinde
bag.pen.color blue sözcüğü

Programda bag.color yoktur. Onu okumaya kalkarsanız program AttributeError ile durur, çünkü bag üzerinde saklanmış bir color yok. None yazılmaz ve program ilerlemez. Bag("blue") de programda yoktur. Tek başına bir sözcük kalem değildir, rengi de yoktur; onun üzerinde .color okumak da AttributeError ile durur. Bir de class Bag(Pen) yazmayın: bu biçim alt sınıf oluşturur, oysa burada kalem çantanın içindedir.

Çantanın içine konan kalem

Kalemi yapıp çantaya koydunuz, blue değerini de bag.pen.color ile okudunuz. Bir sonraki sayfa veri sınıfını anlatır: asıl işi değer saklamak olan bir sınıf. Bu sayfada ise yalnızca kalemi çantaya koydunuz ve blue değerini çantanın üzerinden okudunuz.

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör

❓
6
Sorular
🎯
70%
Geçmek İçin
♾️
∞
Süre
🔄
∞
Deneme

📝 Talimatlar

  • Her soruyu dikkatle okuyun
  • Her soru için en iyi cevabı seçin
  • Quiz'i istediğiniz kadar tekrar alabilirsiniz
  • İlerlemeniz üstte gösterilecek