python迭代器:神奇的yield

知识点: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 条评论) “”
   
验证码:

相关文章

推荐文章