- 在线时间
- 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
+ | t- L! B8 F/ t! L( K
1 f. x& g; \7 D+ ^ H7 z+ Adef createGenerator() : : O5 [" R: j, z! _2 g) j, v
mylist = range(10)
1 m; D' M Q5 O, N' ]7 Q2 ^2 }
7 ?; u6 B% O2 ^5 S1 T4 N for i in mylist : 7 H! M [0 i7 e# V. M. y) }7 o
yield i*i
& Z, `1 Q" _6 A' w$ r5 O% C( d; E* B) Q7 T9 ` W5 Q, `* C# n
mygenerator = createGenerator() # create a generator
1 z, e7 H4 B! pprint mygenerator 8 R- ^6 g% a) ]! Q# W3 O' _5 ]- j9 C
' V4 Y& o5 P5 p
def createIterator() :
, q- A% `- Y, `+ G6 @6 @! } mylist = range(10)
' O. ^) i: h u' S4 R" [4 U
4 J5 h# K/ v1 o4 i* x7 O1 A7 L return iter([i * i for i in mylist]) # D. c% {+ i* J l% ~
( F0 b. A5 x h& \9 _. Z" T& I
myiterator = createIterator() ! y7 o0 u6 G' K i7 A& d, Y- R
print myiterator
& P: B; G: g/ M' c# M( ?' s1 Z4 d1 m {& R- M- S( j5 d' ]3 c) c8 v9 u# y4 T7 w
|
zan
|