toxide
1
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ı?
SuperClass
ta 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.
toxide
3
Öğ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.