Complex composite objects
The following is an example of a blackjack Hand
description that might be suitable for emulating play strategies:
class Hand: def __init__( self, dealer_card ): self.dealer_card= dealer_card self.cards= [] def hard_total(self ): return sum(c.hard for c in self.cards) def soft_total(self ): return sum(c.soft for c in self.cards)
In this example, we have an instance variable self.dealer_card
based on a parameter of the __init__()
method. The self.cards
instance variable, however, is not based on any parameter. This kind of initialization creates an empty collection.
To create an instance of Hand
, we can use the following code:
d = Deck() h = Hand( d.pop() ) h.cards.append( d.pop() ) h.cards.append( d.pop() )
This has the disadvantage ...
Get Mastering Object-oriented Python now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.