Überladung von Operatoren - maximum recursive depth exceeded
Verfasst: Montag 26. März 2007, 15:31
Also als aller erstes einen wundeschönen guten Tag an euch alle. Ich bin vor kurzem auf dieses Forum gestoßen und finde dieses wirklich eine gute Idee!
Nun bin ich ein relativer Neuling in Python (und auch allgemein im Programmieren) und habe eine kleine Klasse: "PokerKarte" geschrieben.
Hier habe ich versucht Vergleichsoperatoren mit der Methode "__cmp__" zu überladen.
"gibZahl" liefert einen Integer-Wert zurück, welches den Stellenwert der Karte darstellt (z.B.: 14 == Ass).
Nun instantiiere ich zwei PokerKarte-nObjekte um sie miteinander zu vergleichen:
Nun stellt sich mir folgende Fehlermeldung in den Weg:
Diese drei Zeilen tauchen sehr oft hintereinander auf, also scheint dort irgendetwas sehr häufig hintereinander zu passieren, obwohl ich in meinem Code meines Wissens keinerlei Schleifen oder rekursive Funktionen implementiert habe.
Mich würde es sehr freuen, wenn ihr mir helfen könntet und ich bitte um Vergebung, falls ich etwas ungenau oder unpräzise geschildert habe (In diesem Fall bitte ich um Nachfrage).
Also schon einmal im Voraus, vielen Dank
Nun bin ich ein relativer Neuling in Python (und auch allgemein im Programmieren) und habe eine kleine Klasse: "PokerKarte" geschrieben.
Hier habe ich versucht Vergleichsoperatoren mit der Methode "__cmp__" zu überladen.
Code: Alles auswählen
def __cmp__(self, other):
a = self.gibZahl
b = other.gibZahl
if a < b: return -1
elif a == b: return 0
else: return 1
Nun instantiiere ich zwei PokerKarte-nObjekte um sie miteinander zu vergleichen:
Code: Alles auswählen
pikAss = PokerKarte("Pik", 14)
herzBube = PokerKarte("Herz", 11)
if pikAss > herzBube:
print "Pik Ass ist höher als Herz Bube!"
Nun stellt sich mir folgende Fehlermeldung in den Weg:
Code: Alles auswählen
[Der Pfad] line 32, in __cmp__
if a < b: return -1
RuntimeError: maximum recursion depth exceeded in cmp
Mich würde es sehr freuen, wenn ihr mir helfen könntet und ich bitte um Vergebung, falls ich etwas ungenau oder unpräzise geschildert habe (In diesem Fall bitte ich um Nachfrage).
Also schon einmal im Voraus, vielen Dank