Je rencontre un problème sur la façon d'écrire des arguments pour l'initialisation de super classe. Le class App1
doit hériter de deux autres classes. J'ai initialisé tous les arguments des classes de base au class App1
, mais l'erreur indique que j'ai trop d'args. Je me demande pourquoi? Fondamentalement, je mets tous les arguments des classes de base dans le super init. Les 3 classes sont écrites en tant que fenêtres multiples, et un Button
commande les sauts de classe un par un. Donc, j'appelle le main()
comme myApp = Welcome(root, csv_name_ses, csv_name_sub)
.Arguments d'initialisation de superclasse python
Merci pour votre aide!
class question(object): #first window
def __init__(self, algorithmIndex, initX, mid_loss_list = None, mid_gain_list = None):
self.initX = initX
self.algorithmIndex = algorithmIndex
self.mid_gain_list = question.mid_gain_list
self.mid_loss_list = question.mid_loss_list
...
class Welcome(object): #second window
def __init__(self, master, csv_name_ses, csv_name_sub):
self.master = master
Welcome.csv_name_sub = str(self.entrySub.get())
Welcome.csv_name_ses = str(self.entrySes.get())
...
class App1(Welcome, question): #third, last one appears
def __init__(self, master, csv_name_ses, csv_name_sub, algorithmIndex, initX, mid_loss_list, mid_gain_list):
super(App1, self).__init__(master, csv_name_ses, csv_name_sub, algorithmIndex, initX, mid_loss_list, mid_gain_list)
...
def main():
root = Tk()
myApp = Welcome(root, csv_name_ses, csv_name_sub)
root.mainloop()
msg d'erreur:
super(App1, self).__init__(master, csv_name_ses, csv_name_sub, algorithmIndex, initX, mid_loss_list, mid_gain_list)
TypeError: __init__() takes 4 positional arguments but 8 were given