- 在线时间
- 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
4 i7 z6 A5 C4 i) b! W( d: o7 m, w% W- W. t
def createGenerator() : , O/ E1 m+ h4 M2 d& b$ `( G
mylist = range(10)
" F8 ?* w- O7 c/ `" t! j3 M
( s# [$ ]9 ? O' u. p/ x for i in mylist : 7 q5 s% K1 U0 x" t
yield i*i
' @/ @1 w# x# K7 \" ~# G# b o. n" V: w, r: l
mygenerator = createGenerator() # create a generator
; X; f7 W7 a+ P, g6 d- m) j/ @; Mprint mygenerator 8 Y" D7 A* D' P6 ?: ]# X4 m. f. T
; G; C A3 v' u" R9 E q0 P, w5 I
def createIterator() : 2 R/ q j7 F1 N- |" l9 n3 K# d
mylist = range(10) , z% H5 L6 O8 U Y# K
" M9 N( X. {) d. {. y% M! ^4 | return iter([i * i for i in mylist])
1 O4 N2 A+ c/ d7 k. t7 D' ]' e
. K' m3 R2 R/ y7 [myiterator = createIterator()
6 ]5 q' ?" f) Rprint myiterator 4 @! S2 R2 z2 W# e8 [2 I
: b: }! H# I5 r; F) ] |
zan
|