知识点:yield 自动生成next方法代码
返回一个结果用return,返回多个结果用yield
yield 就是做标记,自动生成了__next__()代码
生晟迭代器大至的规则是:
1、将yield以前的代码定义在__next__()方法中
2、将yield后面的数据作为next方法的返回值
'''
class Nametr:
def __init__(self,value):
self.value=value
self.atx=0
def __next__(self):
if self.atx==self.value:
raise StopIteration
rame=self.atx
self.atx+=1
return rame
以上代码将由yield代替自动生成
'''
class Myrange:
def __init__(self,dex):
self.dex=dex
def __iter__(self,):
#return Nametr(self.dex)
# yield 就是做标记,自动生成了__next__()代码
#将下列代码改为迭代器模式的代码
#生晟迭代器大至的规则是:
#1、将yield以前的代码定义在__next__()方法中
#2、将yield后面的数据作为next方法的返回值
value = 0
while value
yield value#注意:循环几次就执行几次yield
value+=1
调用:
for i in Myrange(10):
print(i)
留言与评论(共有 0 条评论) “” |