#自定义可迭代对象和迭代器用while实现for循环的迭代过程
class MyList():
def __init__(self):
self.my_list = [1,3,5,7,8,9]
def __iter__(self):
return MyListIter(self.my_list)
class MyListIter():
def __init__(self,my_list):
self.my_list = my_list
self.index = 0
def __iter__(self):
return self
def __next__(self):
if self.index != len(self.my_list):
data = self.my_list[self.index]
self.index += 1
return data
else:
raise StopIteration
def main():
ml = MyList()
mli = iter(ml)
while 1:
try:
print(next(mli))
except StopIteration:
break
if __name__ == "__main__":
main()