Python中的yield

yield是python中生成器的keyword,其做用:
1. 函數中使用yield,可使普通函數變爲生成器
2. 生成器是一種特殊的iterator
3. 重複調用使用的next(), 直到捕獲一個異常
4. yield是一種特殊的return
5. send(msg)是能夠傳遞參數給yield表達式
6. send和next都有返回值
7. next() or send() 循環執行的的順序,以代碼爲例:
    def consumer():
        r = ""
        while True:
            print "step 1"
            n = yield r*20
            r = "step 2"
            print r
      
    def produre(gen):
        gen.next()
        for i in xrange(6):
            print("create is %s" %i)
            r = gen.send(i)
            print("response is %s" %r)
        gen.close()
    生成器下一次迭代從yield下一行開始,到yield上一行爲止
    
相關文章
相關標籤/搜索