- 在线时间
- 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····) 5 B- g. n% W9 ?
( J$ V, @# l5 |* W9 Wdef createGenerator() :
9 P+ Q4 O2 x6 V$ T: V7 q mylist = range(10)
; o/ Y2 Z/ R9 [
* D; n: B% V8 Y/ i( Z for i in mylist :
4 p0 m. S! c& V5 `% u6 j yield i*i
* Z" J* @0 {+ t$ |" r
/ V1 z/ S7 f. b( k# q3 c; e8 _mygenerator = createGenerator() # create a generator " a8 @: D7 u, c% H9 d5 e' v
print mygenerator
( r- q/ m N5 ~; U: Q" c' u2 s6 F9 m+ Q* A& R$ E2 Z
def createIterator() :
2 p* r8 E$ A% D- k8 m mylist = range(10)
6 A. x4 k$ O: n" {7 m: `( S
) n" ~* W1 }: x! g1 _% t( T% G2 n. q return iter([i * i for i in mylist])
5 A2 E, {: _5 L' z$ Y
: t, T6 q+ K' X. c' umyiterator = createIterator()
% m9 C: m6 e& {print myiterator
! z! B6 Q, L. W2 o8 v$ U I
! ?! U6 ^9 R. \; {8 ^1 r' H |
zan
|