Menu
Coddy logo textTech

Çoklu Kalıtım

Coddy'nin Python Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 20 / 64.

Çoklu kalıtım, bir sınıfın birden fazla ebeveyn sınıftan kalıtım almasına olanak tanıyarak farklı kaynaklardan gelen işlevselliği birleştirir.

İşte iki ebeveyn sınıf:

class Animal:
    def __init__(self, name):
        self.name = name
    
    def eat(self):
        return f"{self.name} is eating"

class Flyable:
    def fly(self):
        return f"{self.name} is flying"

Her iki ebeveynden de miras alan bir alt sınıf oluşturun:

class Bird(Animal, Flyable):
    def __init__(self, name, species):
        super().__init__(name)  # Animal'ın __init__ metodunu çağırır
        self.species = species
    
    def sing(self):
        return f"{self.name} is singing"

class Bird(Animal, Flyable): sözdizimi, Bird'ün hem Animal'dan hem de Flyable'dan miras aldığı anlamına gelir.

Bir kuş nesnesi oluşturun ve her iki ebeveynden gelen metotları kullanın:

sparrow = Bird("Sparrow", "House sparrow")

İlk ebeveyn sınıftan metotları çağırın:

print(sparrow.eat())

İkinci üst sınıftan metotları çağırın:

print(sparrow.fly())

Kuşun kendi metodunu çağırın:

print(sparrow.sing())

Çıktı:

Sparrow is eating
Sparrow is flying
Sparrow is singing

Kalıtım sırasını kontrol edebilirsiniz:

print(Bird.__mro__)  # Metot Çözümleme Sırası

Bu, metotlar aranırken hangi ebeveynin önce kontrol edildiğini gösterir.

Önemli Nokta: Çoklu kalıtım class Child(Parent1, Parent2): sözdizimini kullanır. Alt sınıf, tüm üst sınıflardan tüm metotları alır. Python, metotları ararken üst sınıfları soldan sağa doğru kontrol eder.

challenge icon

Görev

Orta

Bu meydan okumada, akıllı telefonlarla çoklu kalıtımı gösteren çok dosyalı bir sınıf sistemi uygulayacaksınız. Daha iyi kod organizasyonu için her sınıf kendi dosyasında düzenlenmiştir.

Şu dosyaları düzenlemeniz gerekecek:

  • device.py - Device temel sınıfını uygulayın
  • internet.py - Internet temel sınıfını uygulayın
  • smartphone.py - Her iki temel sınıftan da kalıtım alan Smartphone sınıfını uygulayın
  • driver.py - Uygulamanızın doğru çalıştığını doğrulayacak test senaryolarını uygulayın

Her dosya, uygulama boyunca size adım adım rehberlik edecek ayrıntılı TODO yorumları içerir.

Kendin dene

# YAPILACAK: Smartphone sınıfını smartphone.py dosyasından içe aktarın

# Bir akıllı telefon oluşturun ve yöntemlerini test edin
# YAPILACAK: Markası "Apple" ve modeli "iPhone 13" olan bir Smartphone nesnesi oluşturun
my_phone = None

# YAPILACAK: Akıllı telefonun power_on() yöntemini çağırın ve yazdırın

# YAPILACAK: Akıllı telefonun connect() yöntemini çağırın ve yazdırın

# YAPILACAK: Akıllı telefonun make_call() yöntemini "123-456-7890" parametresiyle çağırın ve yazdırın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi