Python Multiple Inheritance

Merhaba arkadaşlar, bu yazımızda Python derslerinin bu serisinde yirmi beşinci ders olarak Python Multiple Inheritance konusuna değinmeye çalışacağım. Umarım sizler için faydalı bir yazı olur. İsterseniz hemen başlayalım.

Python Multiple Inheritance

Python Multiple Inheritance (Çoklu Miras Alma)

Python’da çoklu miras alma, bir sınıfın birden fazla sınıfı kalıtım almasıdır. Bu sayede, bir sınıf birden fazla sınıfın metodlarını ve niteliklerini kullanabilir. Aynı zamanda, eğer birden fazla sınıf aynı isimli metodu veya nitelikleri içeriyorsa, Python sınıfın en sol türediği sınıfın metodunu veya niteliklerini kullanır.

class Parent1:
    def method1(self):
        print("Parent1 Method")

class Parent2:
    def method2(self):
        print("Parent2 Method")

class Child(Parent1, Parent2):
    pass

child = Child()
child.method1()
# Output: Parent1 Method
child.method2()
# Output: Parent2 Method

Bu örnekte, Parent1 ve Parent2 sınıfları method1() ve method2() metodlarını tanımlar. Child sınıfı, Parent1 ve Parent2 sınıflarını kalıtım alır. Child sınıfı, Parent1 ve Parent2 sınıflarının metodlarını kullanabilir. Aynı zamanda, eğer Parent1 ve Parent2 sınıfları aynı isimli metodları içeriyorsa, Python Parent1 sınıfının metodunu kullanır.

Python’da çoklu miras alma, sınıf yapısının daha okunaklı ve anlaşılır hale gelmesini sağlar. Ancak, çoklu miras alma kullanılırken dikkatli olunmalıdır, çünkü aynı isimli metodlar ve nitelikler için çakışmalar oluşabilir.

Çoklu Miras Almada Yapıcı Fonksiyon

Çoklu miras alma sırasında, yapıcı fonksiyonlar da (constructor) kullanılabilir. Yapıcı fonksiyon, sınıfın nesnesi oluşturulduğunda çağrılan ve nesnenin başlangıç değerlerini ayarlamak için kullanılan bir fonksiyondur. Çoklu miras alma sırasında, yapıcı fonksiyonlar üst sınıflardan kalıtım alınır ve türetilmiş sınıflar için özelleştirilebilir.

class Parent1:
    def __init__(self, value1):
        self.value1 = value1

class Parent2:
    def __init__(self, value2):
        self.value2 = value2

class Child(Parent1, Parent2):
    def __init__(self, value1, value2, value3):
        super().__init__(value1, value2)
        self.value3 = value3

child = Child(1, 2, 3)
print(child.value1)
# Output: 1
print(child.value2)
# Output: 2
print(child.value3)
# Output: 3

Bu örnekte, Parent1 ve Parent2 sınıfları yapıcı fonksiyonlarını tanımlar ve value1 ve value2 niteliklerini ayarlar. Child sınıfı, Parent1 ve Parent2 sınıflarını kalıtım alır ve kendi yapıcı fonksiyonunu tanımlar. Child sınıfının yapıcı fonksiyonu, super() kullanarak Parent1 ve Parent2 sınıflarının yapıcı fonksiyonlarını çağırarak, value1 ve value2 niteliklerini ayarlar. Aynı zamanda, Child sınıfının yapıcı fonksiyonu, value3 niteliğini de ayarlar. Bu örnekte, çoklu miras alma sırasında yapıcı fonksiyonlar kullanıldığı için, Child nesnesi hem Parent1 hem de Parent2 sınıflarının niteliklerini ve Child sınıfının niteliklerini içerecektir.


Arkadaşlar bu Python Multiple Inheritance adlı yazımızın da sonuna gelmiş bulunmaktayız. Umarım faydalı olmuştur.

0 0 votes
Article Rating
Subscribe
Bildir
guest

0 Yorum
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x