生成器 genertor yield

>>>def simple():

yield 1

yield '2bd'

>>>a=simple()

>>>a.next()

1

>>>a.next()

'2bd'

>>>a.next()

 

Traceback (most recent call last):

  File "<stdin>", line 1, in ?

StopIteration

 

 

 

 

>>>def kk(x):

yield x

yield x+7

yield x*2

>>>b=kk(14)

>>>b.next()

14

>>>b.next()

21

>>>b.next()

28

或者

>>>for i in kk(14):

print i

14

21

28

 

 

 

 

 

>>> def kk(n, ch):

...     for i in range(n):

...         a = ch*(i+1)

...         yield a

...

>>> for i in kk(11,"k"):

...     print i

...

k

kk

kkk

kkkk

kkkkk

kkkkkk

kkkkkkk

kkkkkkkk

kkkkkkkkk

kkkkkkkkkk

kkkkkkkkkkk

 

python 2.5版本之后 yield 有了增强版本 新添加send() throw()等方法

具体请参考:http://blog.donews.com/limodou/archive/2006/09/04/1028747.aspx

你可能感兴趣的:(python,Blog)