Discuss / Python / 看了别人的评论才想起来 这么理解。还是对yield 理解的不够啊。 老觉得 是把r 赋值给n了。哈哈。

看了别人的评论才想起来 这么理解。还是对yield 理解的不够啊。 老觉得 是把r 赋值给n了。哈哈。

Topic source

完美佩恩

#1 Created at ... [Delete] [Delete and Lock User]

--coding:utf-8--

def consumer(): r = '0000' while True: n = yield r# 注意文中老师说的话 :但是Python的yield不但可以返回一个值,它还可以接收调用者发出的参数

    #上面就相当于
    #n = yield 这里yield 就是用来接收参数的
    #yield r 这里用来记录并且返回r的
    print('what is n:%s' % n)
    print('what is r:%s'% r)
    if not n:
        return
    print('[Consumer] consuming %s' % n)
    r = '200 OK'

def produce(c): c.send(None) #这里是启动generator n = 0 while n < 5: n += 1 print('[Producer] producing %s' % n) r = c.send(n) #如果上面不启动会报 can't send non-None value to a just-started generato print('[Producer] consumer return %s' % r) c.close()

c = consumer() produce(c)

完美佩恩

#2 Created at ... [Delete] [Delete and Lock User]

哎我的头像为什么没有啊。


  • 1

Reply