- 在线时间
- 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····) 1 a) [% _7 o5 S; _3 i) g
0 T& T$ k% m, n: `, Z7 M+ x5 f
def createGenerator() : ( ?& \! N" J- d2 B
mylist = range(10) # F, M* J, Y4 x0 i; W
. z9 [$ K& C+ [* p5 L; ] for i in mylist :
, x- l4 I3 `. V% K yield i*i
" Y& S% {. l. ?$ }" H
0 A0 |8 i5 O) c0 `7 n! x$ }5 Imygenerator = createGenerator() # create a generator 6 f6 h' C# S1 y- P. D) X
print mygenerator % X& ~+ m1 x# m) x
' p& X7 \) o# `/ J! k5 o
def createIterator() :
/ v# j" X8 ]+ J( ^" f% C mylist = range(10) 6 F I+ q/ w7 M8 p, E
. W" c1 M3 e7 Y- P4 d. k' R
return iter([i * i for i in mylist])
: X- r2 P+ W6 @1 y0 g3 E* }9 e0 a; ^2 D; J! C" v
myiterator = createIterator() + m. \1 Y3 X g- `# q
print myiterator 6 t$ X1 J" ~# W, R7 V( q
# v& ]' m- i2 K! K5 F
|
zan
|