class List(object): #创建一个类,为了创建对应的可迭代对象
def __init__(self):
self.items = [ ] #定义一个属性是空列表
def append(self,name): #定义方法可以传参数添加到空列表
self.items.append(name)
def __iter__(self): #定义iter方法,返回的是对应的可迭代器
return ListIter(self.items)
class ListIter(object): #自定义迭代器:作用是记录迭代位置和帮助可迭代对象返回数据
def __init__(self,items):
self.items = items #保存数据
self.index = -1 #记录下标位置
def __iter__(self):
return self
def __next__(self):
self.index += 1 #每次使用,下标即+1
if self.index < len(self.items):
return self.items[self.index] #返回下标数据
else:
raise StopIteration #抛出异常
def fun( ): #示例: 创建我的列表的对象(其实就是创建一个可迭代对象) 添加小红,小明,小刚然后打印
my_list = List()
my_list.append('小红')
my_list.append('小明')
my_list.append('小刚')
for value in my_list:
print(value)
if __name__ == '__main__': #入口,实现
fun()
迭代器:有__iter__( )方法和__next__( )方法
可迭代对象只有__iter__( )方法