'''
实现一个ADT时要注意的问题:
1、选用什么数据结构?
2、能否操作?
3、能否支持很高效的操作?效率怎么样?
'''
class Bag(object):
def __init__(self,max_size=10):
self.max_size = max_size
self._items = list()
def add(self,item):
if len(self) > self.max_size:
raise Exception("Bag is full!")
self._items.append(item)
def remove(self,item):
self._items.remove(item)
#实现一个模式方法
def __len__(self):
return len(self._items)
#实现一个迭代器
def __iter__(self):
for item in self._items:
yield item
def test_bag():
bag = Bag()
bag.add(1)
bag.add(2)
bag.add(3)
assert len(bag) == 3 #断言实例化对象长度为3,否则报错
bag.remove(3)
assert len(bag) == 2
for i in bag:
print(i)
test_bag()