(1) 定义:可以被next()函数调用并返回下一个值的对象。
(2) 语法
class 迭代器类名:
def __init__(self, 聚合对象):
self.聚合对象= 聚合对象
def __next__(self):
if 没有元素:
raise StopIteration
return 聚合对象元素
遍历商品控制器
class CommodityController:
pass
controller = CommodityController()
controller.add_commodity("铅笔")
controller.add_commodity("倚天剑")
controller.add_commodity("奥特曼")
for item in controller:
print(item)
class CommodityIierator:
def __init__(self, list_iterator):#3-建立迭代器对象
self.list_iterator= list_iterator
self.i=0
def __next__(self):#4-定义迭代方法
if self.i>=len(self.list_iterator):
raise StopIteration
item=self.list_iterator[self.i]
self.i+=1
return item
class CommodityController:
def __init__(self):
self.__list_commodity=[]
def __iter__(self): #1-为对象添加iter成为迭代器对象
return CommodityIierator(self.__list_commodity) #2-建立迭代器
def add_commodity(self,item):
self.__list_commodity.append(item)
passcontroller = CommodityController()
passcontroller.add_commodity("铅笔")
passcontroller.add_commodity("倚天剑")
passcontroller.add_commodity("奥特曼")
for item in passcontroller:
print(item)