Ich habe 2 Klassen, die ich beide von einer anderen Klasse erben soll. Diese 2 Klassen haben bereits , definiert. Nun möchte ich, dass diese 2 Klassen eine Methode erben, die eine Reihe von Parametern (Argumenten) benötigt. Aber in den 2 Klassen, die erben sollten, wird die überschrieben.Vererbung: __init__ überschrieben
Wie kann ich dieses Problem lösen? Ich lese über Konstruktoren in Python vs . Könnte ich vielleicht einen benutzerdefinierten Konstruktor für die Methode erstellen? Ich bin ziemlich neu im Unterricht.
EDIT:
Hier ist, was ich attemping. Dies ist ein GUI-Projekt. Dies ist die Hauptklasse:
class Error:
def __init__(self, check0, check1, check2, check3, check4, check5, check6, check7, check8, check9, check10, check11,
check12, check13, check14, check15):
self.check0 = check0
self.check1 = check1
self.check2 = check2
self.check3 = check3
self.check4 = check4
self.check5 = check5
self.check6 = check6
self.check7 = check7
self.check8 = check8
self.check9 = check9
self.check10 = check10
self.check11 = check11
self.check12 = check12
self.check13 = check13
self.check14 = check14
self.check15 = check15
def feedbackOnError(self):
feedback = ''
global feedback
if self.check0 == False:
feedback0 = "You didn't provide a name and/or mail"
feedback = feedback0
if self.check3 == False:
feedback3 = "You didn't provide a valid year (you used over 4 digits or none)"
feedback = feedback3
if self.check4 == False:
feedback4 = "You didn't provide a valid year (you used letters)"
feedback = feedback4
if self.check5 == False:
feedback5 = "You didn't provide a valid month (you used over 2 digits or none)"
feedback = feedback5
if self.check6 == False:
feedback6 = "You didn't provide a valid month (you used letters)"
feedback = feedback6
if self.check7 == False:
feedback7 = "You didn't provide a valid month (you used a number above 12)"
feedback = feedback7
if self.check8 == False:
feedback8 = "You didn't provide a valid month '00' is not a month)"
feedback = feedback8
if self.check9 == False:
feedback9 = "You didn't provide a valid day (you used letters)"
feedback = feedback9
if self.check10 == False:
feedback10 = "You didn't provide a valid day '00' is not a day)"
feedback = feedback10
if self.check11 == False:
feedback11 = "You didn't provide a valid day (you used a number above 31)"
feedback = feedback11
if self.check12 == False:
feedback12 = "You didn't provide a valid day (you used over 2 digits or none)"
feedback = feedback12
if self.check13 == False:
feedback13 = "Your month doesn't match up with your day (February has 29 during leap year)"
feedback = feedback13
if self.check14 == False:
feedback14 = "Your month doesn't match up with your day (February has 28 during normal years)"
feedback = feedback14
if self.check15 == False:
feedback15 = "Your chosen month and day don't match up (You used '31' for a month with only 30)"
feedback = feedback15
if self.check1 == False:
feedback1 = "You used characters that are not permitted: \n/' * \\ _ > < [ ] () | + { } % & ! \" # = ?^~ . , ; :"
feedback = feedback1
if self.check2 == False:
feedback2 = "You used characters that are not permitted: \n/' * \\ _ > < [ ] () | + { } % & ! \" # = ?^~ . , ; :"
feedback = feedback2
Dies ist die Klassen I die Hauptklasse erben wollen:
class AddDialog(sized_controls.SizedDialog, Error):
def __init__(self, *args, **kwargs):
super(AddDialog, self).__init__(*args, **kwargs)
class EditDialog(sized_controls.SizedDialog, Error):
def __init__(self, *args, **kwargs):
super(EditDialog, self).__init__(*args, **kwargs)
Sie müssen uns Ihren Code zeigen, wenn wir darauf hinweisen, was Sie falsch gemacht haben. – user2357112
Versuchen Sie, 'Super' in Ihren' __init__' Methoden aufzurufen. – bjd2385
Es ist unklar, wie '__init__' mit Ihrem Problem" erben einer Methode "zusammenhängt ... oder dass das Problem besteht. –