class MyList(object):
def __init__(self):
self.items = []
def __iter__(self):
return MyListIterator(self.items)
def addItem(self, item):
self.items.append(item)
print("保存了:", item)
class MyListIterator(object):
def __init__(self, items):
self.items = items
self.index = 0
def __iter__(self):
pass
def __next__(self):
if self.index < len(self.items):
data = self.items[self.index]
self.index += 1
return data
else:
raise StopIteration
if __name__ == '__main__':
my_list = MyList()
my_list.addItem("张飞")
my_list.addItem("关羽")
my_list.addItem("刘备")
my_list.addItem("郭嘉")
m_iter=iter(my_list)
x=next(m_iter)
print(x)
for value in my_list:
print(value)
迭代器_斐波那契数列.py
class Fibnacci(object):
def __init__(self, num):
self.num = num
self.a = 1
self.b = 2
self.current_index = 0
def __iter__(self):
return self
def __next__(self):
if self.current_index < self.num:
data = self.a
self.a, self.b = self.b, self.a + self.b
self.current_index += 1
return data
else:
raise StopIteration
if __name__ == '__main__':
fib = Fibnacci(5)
print(next(fib))
print(next(fib))
print(next(fib))
print(next(fib))
print(next(fib))
print(next(fib))
print(next(fib))
print(next(fib))
# print("")
#
# for fibc in fib:
# print(fibc)