example-code-2e/13-protocol-abc/tombolist.py

24 lines
504 B
Python
Raw Normal View History

from random import randrange
from tombola import Tombola
@Tombola.register # <1>
class TomboList(list): # <2>
def pick(self):
if self: # <3>
position = randrange(len(self))
return self.pop(position) # <4>
else:
raise LookupError('pop from empty TomboList')
load = list.extend # <5>
def loaded(self):
return bool(self) # <6>
def inspect(self):
return tuple(sorted(self))
# Tombola.register(TomboList) # <7>