Python的生成器语法,会返回一个生成器对象,而用iter()函数,也能返回一个带有next()方法的可迭代对象,这样的话··按照我下面的写法,2者会有什么区别吗?如果一样,那生成器岂不是没用了?(所以·····) # m5 x9 z4 `& [" b5 C6 w8 m' T: ], ?3 P" S
def createGenerator() : - S$ v, H- z4 x8 r. Z9 [( S mylist = range(10) S' r# X1 f! g+ F1 X2 ]5 T T; _& \
) J4 k$ Z2 t# O; G for i in mylist : 1 N+ _1 z$ E# Z
yield i*i 9 y, ~: G$ X) J8 v! A' ~1 P 0 y T+ V; F* q4 Dmygenerator = createGenerator() # create a generator , C' ]6 e! Q' {
print mygenerator 7 `! r1 ~( o( K' U ' _' c) O, v2 |+ F, S: odef createIterator() : ' f, k' L) h+ u; \: L" o4 y8 e l+ u mylist = range(10) " a0 j; h* C4 p
- ~5 V0 x. o" [$ D- P; i
return iter([i * i for i in mylist]) 1 H7 l% d# \8 T8 v" C7 c
5 B) J; O+ B& E! y; ], M
myiterator = createIterator() ' Y& o" f1 w) R' e+ W n& z
print myiterator 2 U$ l# S0 o' Y; X/ y6 h7 \- k/ J; j