前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python generator

python generator

作者头像
py3study
发布2020-01-09 16:23:57
2930
发布2020-01-09 16:23:57
举报
文章被收录于专栏:python3
代码语言:javascript
复制
>>> lst_num = [1,2,3] 
>>> iter = (i for i in lst_num) 
>>> print iter.next 
<method-wrapper 'next' of generator object at 0xb71566e4> 
>>> print iter.next() 
1 
>>> print iter.next() 
2 
>>> print iter.next() 
3 
>>> print iter.next() 
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
StopIteration 
代码语言:javascript
复制
>>> def use_yield(): 
...    for i in range(10): 
...      yield(i) 
...  
>>>  
>>> iter = use_yield() 
>>> iter.next() 
0 
>>> iter.next() 
1 
>>> iter.next() 
2 
代码语言:javascript
复制
>>> def use_send(): 
...   print 'how are you?', 
...   m = yield('55555') 
...   print m 
...   n = yield('aaaaaaaaaaa') 
...   print 'ok!' 
...  
>>> test = use_send() 
>>> test.send(None) 
how are you? 
'55555' 
>>> test.next() 
None 
'aaaaaaaaaaa' 
>>> test.next() 
ok! 
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
StopIteration 
>>> test = use_send() 
>>> test.next() 
how are you? 
'55555' 
>>> test.send('fine,3Q.') 
fine,3Q. 
'aaaaaaaaaaa' 

第一个例子是告诉怎么输出generator对象

第2个是使用 yield 产生generator对象

第3个例子涉及到generatorde 原理,

代码语言:javascript
复制
m = yield('55555')  
相当于下面伪代码
print(‘55555’)       //输出55555
m = wait_and get()   //等待输入,并把值返给m,另外告诉next() = send(None)

详细解释参考http://blog.donews.com/limodou/archive/2006/09/04/1028747.aspx

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档