update from Atlas with major reorg
This commit is contained in:
@@ -2,12 +2,13 @@
|
||||
# BEGIN BINGO_DEMO
|
||||
|
||||
>>> bingo = BingoCage(range(3))
|
||||
>>> bingo()
|
||||
2
|
||||
>>> bingo.pick()
|
||||
1
|
||||
>>> bingo()
|
||||
0
|
||||
>>> callable(bingo)
|
||||
True
|
||||
|
||||
# END BINGO_DEMO
|
||||
|
||||
"""
|
||||
@@ -22,9 +23,13 @@ class BingoCage:
|
||||
self._items = list(items) # <1>
|
||||
random.shuffle(self._items) # <2>
|
||||
|
||||
def __call__(self):
|
||||
if not self._items: # <3>
|
||||
raise IndexError('pop from empty BingoCage')
|
||||
return self._items.pop()
|
||||
def pick(self): # <3>
|
||||
try:
|
||||
return self._items.pop()
|
||||
except IndexError:
|
||||
raise LookupError('pick from empty BingoCage') # <4>
|
||||
|
||||
def __call__(self): # <5>
|
||||
return self.pick()
|
||||
|
||||
# END BINGO
|
||||
Reference in New Issue
Block a user