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上一行爲止