如何將「in」關鍵字擴展到我創建的類?我正在製作一個Card類的紙牌遊戲。還有另外一類是玩家的手。基本上我想看看某張牌是否在手中。類比如下:python「in」類申請
>>> 5 in range(0, 5)
True
這是我的代碼。我有一個Hand類,我想看看Card()是否在Hand中()
另外,我對這個類的概念很陌生。我剛剛開始瞭解這整個事情是如何工作的。我是否正確實施了len方法?
class Card:
def __init__(self, suit, rank):
# self.suit > str
# self.rank > str
if (suit in SUITS) and (rank in RANKS):
self.suit = suit
self.rank = rank
else:
self.suit = None
self.rank = None
print "Invalid card:", suit, rank
def __str__(self):
return self.suit + self.rank
def get_suit(self):
return self.suit
def get_rank(self):
return self.rank
# define hand class
class Hand:
# A list of Card objects
# adding cards to the hand should remove cards from the deck.
def __init__(self):
self.hand = []
def __str__(self):
cards = []
for card in self.hand:
cards += [card.get_suit() + card.get_rank()]
return str(cards)
def add_card(self, card):
return self.hand.append(card)
def __len__(self):
counter = 0
for card in self.hand:
counter +=1
return counter
OK,所以我加了這段代碼在手類:
def __contains__(self, card):
return card in self.hand
但我想測試我的代碼,它不工作:
c = Card('H','A')
h = Hand()
h.add_card(Card('S','K'))
h.add_card(Card('D','A'))
h.add_card(Card('H','A'))
print 'hand=', h
print 'c=', c
print 'c in h', c in h
它在終端說虛假...爲什麼?
感謝您的幫助! – user1527227