Verstehe den Fehler kaum Python?
HI,
und zwar bin ich dabei eine Aufgabe zu machen, doch kommen nicht weiter was mache ich den falsch??
Leider verstehe ich den Ausgebenden Fehler kaum.
Mein Code:
class Figur:
def __init__(self, name, farbe, durchmesser, kanten):
self.name = name
self.farbe = farbe
def ausgabe(self):
print("Die Figur", self.name, "hat folgende Eigenschaften:")
print("Die Figur hat die Farbe:", self.farbe)
def Radius_Veraendern(self, veraendern):
if self.radius < 1:
self.radius = self.radius + 1
print("Der neue Radius beträgt", self.radius)
def Kante_Veraendern(self, veraendern):
if self.kantenlaenge < 1:
self.kantenlaenge = self.kantenlaenge + 6
print("Die nue KAntenlänge brträgt", self.kantenlaenge)
def Laenge_Veraendern(self, veraendern):
if self.laenge < 1:
self.laenge = self.laenge + 3
print("Die neue Linienlänge beträgt:", self.laenge)
# Die Klasse für Kreis
class Kreis(Figur):
def __init__(self, name, farbe, radius):
super().__init__(name, farbe, radius)
self.radius = radius
def ausgabe(self):
super().ausgabe()
print("Der Radius beträgt:", self.radius)
#Die Klasse für Viereck
class Viereck(Kreis):
def __init__(self, name, farbe, kantenlaenge):
super().__init__(name, farbe, kantenlaenge)
self.kantenlaenge = kantenlaenge
def ausgabe(self):
super().ausgabe()
print("Die Kantenlänge beträgt:", self.kantenlaenge)
# Die Klasse für Linie
class Linie(Kreis):
def __init__(self, name, farbe, laenge):
super().__init__(name, farbe, laenge)
self.laenge = laenge
def ausgabe(self):
super().ausgabe()
print("Die Linienlänge beträgt:", self.laenge)
#einen Kreis erzeugen
kreis = Kreis("Mein Kreis", "Rot", 5)
kreis.ausgabe()
#verändere den Wert
kreis.Radius_Veraendern(-5)
print("----------------")
#ein Viereck erzeugen
viereck = Viereck ("Mein Viereck", "Blau", 8)
viereck.ausgabe()
#verändere den Wert
viereck.Kante_Veraendern8(-10)
print("----------------")
#eine Linie erzeugen
linie = Linie("Meine Linie", "Grün", 9)
linie.ausgabe()
#verändern den Wert
viereck.Linie_Veraendern(-8)
1 Antwort
def __init__(self, name, farbe, radius):
super().__init__(name, farbe, radius)
Du rufst hier den Konstruktor der Superklasse Figur auf. Und wie hattest du den definiert?
def __init__(self, name, farbe, durchmesser, kanten):
Richtig, da war noch ein Parameter "kanten", den du aber beim Aufruf nicht mitgibst.
Die Klassenhierarchie ist generell etwas seltsam - man leitet vom Allgemeinen das Spezifische ab. Deine "Figur" aber muss einen Radius und Kanten haben? Ich denke, du willst dir das nochmal überlegen.
Du verstehst also die Grundzüge der Objektorientierung um ein solches Konstrukt aufzubauen, schaffst es aber nicht eine Fehlermeldung mit klaren Hinweisen zu interpretieren und zu beheben, die sowas einfaches ist, wie ein Parameter zu wenig beim Funktionsaufruf?
Wessen Intelligenz möchtest du beleidigen?
keinem sein, wollte nur meinen Fehler wissen, warum das nicht funktioniert, tut mir leid die Frage gestellt zu haben.
Es muss dir nicht leid tun eine Frage zu stellen, dafür ist die Plattform schließlich da. Aber meine Aussage abzustreiten ist halt fragwürdig, wenn es so offensichtlich ist. 😉
ich tue sich nicht abstreiten, dennoch habe ich diesen Code selbstgeschrieben, heißt natürlich mit etwas hilfe, aber dennoch bedanke ich mich bei herzlichst.
Ich glaube nicht, dass er das selbst geschrieben hat, sondern von irgendwo zusammenkopiert. 😉