import collections
from random import choice
Card = collections.namedtuple('Card',['rank', 'suit'])
class FrenchDeck:
ranks = [str(n) for n in range(2,11)] + list('JQKA')
suits = 'spades diamonds clubs hearts'.split()
def __init__(self):
self._cards = [Card(rank, suit) for suit in self.suits
for rank in self.ranks]
def __len__(self):
return len(self._cards)
def __getitem__(self, position):
return self._cards[position]
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]
deck = FrenchDeck()
for card in sorted(deck, key=spades_high): #doctest: +ElLIPSIS
print(card)
如图所示
输出错误
Traceback (most recent call last):
File "C:/Users/86199/Desktop/wqe.py", line 32, in <module>
for card in sorted(deck, key=spades_high): #doctest: +ElLIPSIS
NameError: name 'spades_high' is not defined
Process finished with exit code 1