python学习 - yield

def myYield2():
    for i in range(3):
        yield '2222 i am in myYield2', 'i = ', i


def myYield():
    for i in range(10):
        yield '0000 i am in myYield', 'i = ', i
        for j in myYield2():
            yield '1111 i am in for myYield2', 'j = ', j

f = myYield()
print 'KKK', f.next()
print 'KKK', f.next()
print 'KKK', f.next()
print 'KKK', f.next()
print 'KKK', f.next()
print 'KKK', f.next()
print 'KKK', f.next()

yield有一点像return, 返回的结果如下:

KKK ('0000 i am in myYield', 'i = ', 0)
KKK ('1111 i am in for myYield2', 'j = ', ('2222 i am in myYield2', 'i = ', 0))
KKK ('1111 i am in for myYield2', 'j = ', ('2222 i am in myYield2', 'i = ', 1))
KKK ('1111 i am in for myYield2', 'j = ', ('2222 i am in myYield2', 'i = ', 2))
KKK ('0000 i am in myYield', 'i = ', 1)
KKK ('1111 i am in for myYield2', 'j = ', ('2222 i am in myYield2', 'i = ', 0))
KKK ('1111 i am in for myYield2', 'j = ', ('2222 i am in myYield2', 'i = ', 1))
posted @ 2015-07-27 19:13  aprial  阅读(151)  评论(0)    收藏  举报