나는 단순한 Old Maid 게임을 만들고 있습니다. 다음은 플레이어의 손에 내 클래스입니다 :왜 비교가 int를 반환하지 않았습니까
class OldMaidHand(Hand):
def removeMatches(self):
count=0;
originalCards=self.cards[:];
for card in originalCards:
match=Card(3-card.suit,card.rank);
if match in self.cards:
self.cards.remove(card);
self.cards.remove(match);
print "Hand %s: %s matches %s "%(self.name,card,match);
count=count+1;
return count;`
는하지만 다음과 같은 오류를 보여주는 것 :
TypeError
:comparison did not return an int.
여기 Card
클래스 내 __cmp__()
방법이다. documentation for __cmp__
에서
def __cmp__(self,other):
if self.suit>other.suit:
return 1
if self.suit<other.suit:
return -1
if self.rank>other.rank:
return 1
if self.rank<other.rank:
return -1
수업의 형식을 수정하십시오. – Carcigenicate
만약 그들이 동등하다면? – jonrsharpe
'if' 절이 True가 아닌 경우'__cmp__'는'None'을 반환합니다. 이것은 괜찮지 않습니다. –