Çoklu Kalıtımda super(). ifadesi ile nasıl bazı parametreler alt sınıfa çekilir

    class otomobil:
    def __init__(self,model,motor,sıra):
        self.model=model
        self.motor=motor
        self.sıra=sıra
    def __str__(self):
        return "model:{}\nmotor:{}\nsıra:{}".format(self.model,self.motor,self.sıra)
    nissan=otomobil("note",1200,3)
    print(nissan)
    print("***********************")    
    class yaris:
        def __init__(self,efor,kaza,fireplay):
            self.efor=efor
            self.kaza=kaza
            self.fireplay=fireplay
        def __str__(self):
            return "efor:{}\nkaza:{}\nfireplay:{}".format(self.efor,self.kaza,self.fireplay)
    ford=yaris(2000,2,-5)
    print(ford)
    print("***********************")   
    class formula(otomobil,yaris):
        def __init__(self,model,fireplay,kazanma):
            super(otomobil).__init__(self,model,fireplay)
            self.kazanma=kazanma
        def __str__(self):
            return "model:{}/nfireplay:{}\nkazanma:{}".format(model,fireplay,self.kazanma)
    schumacher=formula("mercedes",5,22)
    print(schumacher)

Yukarıdakii kodlamada son yazdığım subclass ta otomobil superclassından model parametresini, yaris superclassından ise fireplay parametresini formula subclassına çekmek istiyorum ama devamlı olarak farklı hatala veriyor. Bir örneğide şu şekilde:

raceback (most recent call last):

27, in
schumacher=formula(“mercedes”,5,22)

23, in init
super(otomobil).init(self,model,fireplay)
TypeError: super() takes at most 2 arguments (3 given)

Merhaba.

Kodlarınızda girinti hataları var, buraya göre atar mısınız:

Sinif isimlerinin buyuk harfle baslamasi okunakliligi arttiran bir gelenek.

Kodun genel olarak bosluga ihtiyaci var: Operatorler ve ayraclar arasina yatay bosluk, siniflar ve fonksiyonlar arasina dikey bosluk okunakliligi arttirir.

"model:{}/nfireplay:{}\nkazanma:{}".format(model,fireplay,self.kazanma)

self.'ler eksik.

super(otomobil).__init__(self,model,fireplay)

Bu hatanin model ve fireplay alanlarini (field) almakla bir alakasi yok, cagri yanlis yapilmis. instance.method(...) seklinde cagrilan methodlara “self” parametresi verilmez.

Multiple inheritance durumunda superclass constructor’i cagirmak karisik is fakat bu durumda Otomobil.__init__(self, ...) seklinde explicit cagrilarla cozulebilir gibi duruyor.