- 在线时间
- 4 小时
- 最后登录
- 2015-5-5
- 注册时间
- 2015-4-8
- 听众数
- 9
- 收听数
- 0
- 能力
- 0 分
- 体力
- 86 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 38
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 22
- 主题
- 12
- 精华
- 0
- 分享
- 0
- 好友
- 3
升级   34.74% TA的每日心情 | 慵懒 2015-5-5 09:35 |
|---|
签到天数: 10 天 [LV.3]偶尔看看II
- 自我介绍
- sdc
 |
Python的生成器语法,会返回一个生成器对象,而用iter()函数,也能返回一个带有next()方法的可迭代对象,这样的话··按照我下面的写法,2者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
& N' p/ I% i2 J$ e9 \- A
9 ]) T9 z1 @1 Z$ U" S6 Ldef createGenerator() :
; Y4 @; E6 D# D* p" l7 h H$ ` mylist = range(10)
* x$ [, K4 Q9 Y5 I, _, C! x' e) H! W4 q
for i in mylist :
7 W3 E: m: \* j1 @9 n, H yield i*i ! V" o4 x7 e: m8 |3 _
# [) \7 k5 d, B0 C) C' n' _+ d
mygenerator = createGenerator() # create a generator
0 L) M$ ?$ h6 B+ |) S. [# ?print mygenerator
# r$ N0 y1 Y: y7 o
% Q3 ~3 m' q# d) r! e' D# Sdef createIterator() :
. B$ V" Z- t. A( X) H, g mylist = range(10)
% k1 s1 C, A* {; x# J$ C( Y
3 N. v9 }/ V( U return iter([i * i for i in mylist]) $ Z( B, j9 x9 u q
8 V. \% b' e7 f% D" B% y' Z
myiterator = createIterator() $ A5 C0 e8 q2 }8 H! H) x
print myiterator ' y' V) ]3 v9 P4 f& g
- K! B# H2 ~, _! ~' i |
zan
|