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.
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
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 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