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))

 

posted on 2017-07-18 13:35  杨尧尧  阅读(93)  评论(0编辑  收藏  举报