- 在线时间
- 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者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····)
% K' G( F6 U. @* }, X6 _. b1 G' u2 k# r h1 Z" P
def createGenerator() : + x% P1 @, [3 s8 n8 Q$ O. A( F
mylist = range(10)
* \' G T9 ?/ H3 y+ N' v5 v; K8 e
for i in mylist : 8 |3 D D7 G2 R6 v# M6 m* ]5 t
yield i*i
4 f4 ]/ Q0 z/ y8 o6 V; m+ v' W
$ N5 e1 ^4 E& kmygenerator = createGenerator() # create a generator 4 ?; b6 j5 d, m7 J* V, h
print mygenerator " G i& C- n7 F# a+ g" p9 y
( B3 \$ G! F+ X! o5 t) bdef createIterator() :
( Y' P0 d9 w) A D3 y9 U mylist = range(10)
' G) Y$ j! z, O/ l- r/ k2 i' o2 T; R) @. S" s6 ?- R
return iter([i * i for i in mylist]) 4 U( W* R# ]0 |. d% {6 l3 O
+ S* V; o6 s3 ~6 X- tmyiterator = createIterator()
, _* v R1 X8 ]print myiterator " W6 n1 ^! [6 o
. ?9 |5 j0 r, s. c- R" h0 ` |
zan
|