To deal cards, we would like a method that removes a card from the deck and returns it. The list method
pop provides a convenient way to do that:
#inside class Deck: def pop_card(self): return self.cards.pop()
pop removes the last card in the list, we are dealing from the bottom of the deck. In real life “bottom dealing” is frowned upon, but in this context it’s ok.
To add a card, we can use the list method
#inside class Deck: def add_card(self, card): self.cards.append(card)
A method like this that uses another function without doing much real work is sometimes called a veneer. The metaphor comes from woodworking, where it is common to glue a thin layer of good quality wood to the surface of a cheaper piece of wood.
In this case we are defining a “thin” method that expresses a list operation in terms that are appropriate for decks.
As another example, we can write a Deck method named
shuffle using the function
shuffle from the
# inside class Deck: def shuffle(self): random.shuffle(self.cards)
Don’t forget to import
Write a Deck method named
sort that uses the list method
sort to sort the cards in a
sort uses the
__cmp__ method we defined to determine sort order.