Discuss / Python / yield和send()理解

yield和send()理解

Topic source

def consumer(): r = '' while True: n1 = yield r # 获取n值,返回r值 if not n1: return print('[CONSUMER] Consuming %s...' % n) r = '200 OK'

def produce(c): c.send(None) # 第一次调用时,使用send(None)
n = 0 while n < 5: n = n + 1 print('[PRODUCER] Producing %s...' % n) r = c.send(n)

   **# send转到consumer()时:(yield r)表达式被赋予了n** 
   **#consumer()执行完返回:d 获取了yield r 的参数值 r**

    print('[PRODUCER] Consumer return: %s' % r)
c.close()

c = consumer() produce(c)


  • 1

Reply