class DDq:
def __init__(self):
#设置初始值,初始变量
self.index=0
#可迭代协议
def __iter__(self):
return self
#实现迭代器的方法 迭代器协议
def __next__(self):
#获取给当前索引值
i =self.index
if i <10:
#将索引值加1
self.index+=1
return i
else:
raise StopIteration
#终止迭代
def __nex__(self):
#获取给当前索引值
i =self.index
if i <10:
#将索引值加1
self.index+=1
return i
else:
raise StopIteration#终止迭代
one=DDq()
for i in one:
print(i)
-------------------------------------------------------------------------------------------------
生成器:
#获取0到正无穷
def scq():
i = 0
while True:
num = (yield i)
#判断用户是否有发送值进来
if num is not None:#发进来数据
i = num
else:
i += 1
#操作
a = scq()
#前10次调用生成器
print(next(a))
print(next(a))
print(next(a))
print(next(a))
print(next(a))
print(next(a))
print(next(a))
print(next(a))
print(next(a))
print(next(a))
#修改生成器的值
a.send(500)
print(next(a))
print(next(a))
print(next(a))
print(next(a))
print(next(a))
print(next(a))
print(next(a))