Küçük Bir Superclass Sorusu

class Superclass:
    def __init__(self, arguman1, arguman2):
        self.attribute1 = "sample"

class Childclass1(Superclass):
    def __init__(self, *args, **kw):
        super().__init__(*args, **kw)

class Childclass2(Superclass):
    def __init__(self, *args, **kw):
        super(Childclass2, self).__init__(*args, **kw)

Childclass1 ve Childclass2 deki super() fonksiyonları arasında bir fark var mı?

SuperClassta kw isimli bir argüman olmadığı için super().__init__(**kw) yanlış bir ifadedir.

Yani Childclass1 veya Childclass2 sınıfından bir örnek oluştururken bir keyword argüman kullanırsanız hata alırsınız.

Childclass2'deki super(Childclas2, self).__init__(**kw) ifadesi Python2’ye aittir, Python3’te de kullanılabilir ancak Python3’te genellikle super().__init(*args, **kwargs) kullanıldığını görürsünüz.

Öğrenmek istediğim şey super() ile ilgili olduğu için argümanlara dikkat etmedim, düzelttim.

Cevabınız için teşekkürler.