Özet - Miras alma
- Python kursu
- Orta seviye
- Ders 12/116
- 5 dk
super ve override'ı birleştirerek bir şekil hiyerarşisi yazarsın.
Özet - Miras alma
Bu grupta miras alma, super(), geçersiz kılma, çoklu miras ve isinstance/issubclass kavramlarını öğrendik. Çocuk sınıf ebeveyni parantez içinde yazar; super() ile ebeveyn metotları çağrılır.
Geçersiz kılma ile çocuk ebeveyn metodunu yeniden tanımlar. Çoklu miras virgülle ayrılmış ebeveynlerle yapılır; MRO sırası belirleyicidir. Şimdi bu parçaları bir araya getiren bir sınıf yazacağız.
Uygulama Dog sınıfını birleştir
Animal sınıfını tanımla; def __init__(self, species): ve gövdede self.species = species ve def speak(self): ile print("Ses") yaz. Sonra class Dog(Animal): tanımla; def __init__(self, name): ekle, gövdede super().__init__("köpek"), self.name = name yaz; def speak(self): ile print("Hav") yaz. Sonra d = Dog("Karabaş"), print(d.name) ve d.speak() çağrısı yap.
Başlangıç kodu
# Animal ve Dog sınıflarını birleştirÖrnek çözüm
# Animal ve Dog sınıflarını birleştir
class Animal:
def __init__(self, species):
self.species = species
def speak(self):
print("Ses")
class Dog(Animal):
def __init__(self, name):
super().__init__("köpek")
self.name = name
def speak(self):
print("Hav")
d = Dog("Karabaş")
print(d.name)
d.speak()Beklenen çıktı
Karabaş Hav
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Çocuk __init__ içinde ne yapılır?
- Ebeveyn __init__'i yok sayılır
- Sınıf adı değiştirilir
- Ebeveyn sınıf silinir
- super().__init__(...) ile ebeveyn çağrılır Doğru cevap
Açıklama: Çocuk __init__ içinde super().__init__(...) açıkça çağrılır.
2 Kavramları eşle
| Kavram | Anlamı |
|---|---|
class Dog(Animal) |
Miras |
super() |
Ebeveyn çağrısı |
def speak(self) |
Geçersiz kılma |
3 Çocuk sınıf tanımını tamamla
class Dog(____):
pass
class Dog(Animal):
pass
Açıklama: Dog, Animal'dan miras alır.