定義一個紙牌類
下例的代碼建立了一個紙牌類
1、上述例子中使用collections.namedtuple構(gòu)建了一個簡單的類來表示一張紙牌馋袜,namedtuple常用來構(gòu)建只有少數(shù)屬性但是沒有方法的對象。
求紙牌的數(shù)量
通過定義__len__()函數(shù)來獲取一摞紙牌的數(shù)量
deck = FrenchDeck()
len(deck)
抽取一張紙牌
通過定義__getitem__()函數(shù)抽取一張紙牌
紙牌的排序
我們按照常規(guī)兽狭,用點數(shù)來判定撲克牌的大小伊者,2最小仔役,A最大喜每;同時還要加上對花色的判定务唐,黑桃最大,紅桃次之带兜,方塊再次枫笛,梅花最小。下面就是按照這個規(guī)則來給撲克牌排序的函數(shù)
suit_values = dict(spades=3, hearts=2, diamonds=1, clubs=0)
def spades_high(card):
? ? rank_value = FrenchDeck.ranks.index(card.rank)
? ? return rank_value * Len(suit_values) + suit_values[card.suit]
>>>for card in sorted(deck, key=spades_high):
... ? ? ? ? ? ?print(card)