Opening the book…
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()
Since pop removes the last card in the list, we are dealing from the bottom of the deck.
To add a card, we can use the list method append:
#inside class Deck:
def add_card(self, card):
self.cards.append(card)
A method like this that uses another method without doing much work is sometimes called a veneer. The metaphor comes from woodworking, where a veneer is a thin layer of good quality wood glued to the surface of a cheaper piece of wood to improve the appearance.
In this case add_card is a “thin” method that expresses a list operation in terms appropriate for decks. It improves the appearance, or interface, of the implementation.
As another example, we can write a Deck method named shuffle using the function shuffle from the random module:
# inside class Deck:
def shuffle(self):
random.shuffle(self.cards)
Don’t forget to import random.
As an exercise, write a Deck method named sort that uses the list method sort to sort the cards in a Deck. sort uses the __lt__ method we defined to determine the order.
This page titled 18.6: Add, remove, shuffle and sort was last modified on Tue, 01 Dec 2020 03:30:57 GMT and is shared under a CC BY-NC 3.0 license and was authored, remixed, and/or curated by Allen B. Downey (Green Tea Press) via source content that was edited to the style and standards of the LibreTexts platform.
The book could not be loaded just now.