定义一个纸牌类
下例的代码建立了一个纸牌类
1、上述例子中使用collections.namedtuple构建了一个简单的类来表示一张纸牌,namedtuple常用来构建只有少数属性但是没有方法的对象。
求纸牌的数量
通过定义__len__()函数来获取一摞纸牌的数量
deck = FrenchDeck()
len(deck)
抽取一张纸牌
通过定义__getitem__()函数抽取一张纸牌
纸牌的排序
我们按照常规,用点数来判定扑克牌的大小,2最小,A最大;同时还要加上对花色的判定,黑桃最大,红桃次之,方块再次,梅花最小。下面就是按照这个规则来给扑克牌排序的函数
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)