python生成器和迭代器

生成器:具有生成能力的对象

迭代器:具有取值功能的对象

 1 def func():
 2 
 3   yield 1
 4 
 5   yield 2
 6 
 7   yield 3
 8 
 9 ret = func()   #func()函数体称为生成器
10 
11 r=ret._next_()  #进入函数找到yield,获取yield后面的数据,通过_next_()来获取值叫做迭代器
12 
13 print(r)
14 
15 r=ret._next_()
16 print(r)
17 
18 r=ret._next_()
19 
20 print(r)
21 
22 输出:
23 
24 1
25 
26 2
27 
28 3

 

 

 

或者我们可以用一个for循环来获取yield后面的数据

 1 def func():
 2 
 3   yiled 1
 4 
 5   yiled 2
 6 
 7   yiled 3
 8 
 9 ret = func()
10 
11 for i in ret:
12 
13   print(i)
14 
15  
16 
17 输出:
18 
19 1
20 
21 2
22 
23 3

 

posted @ 2016-10-09 20:50  hehe88  阅读(102)  评论(0)    收藏  举报