Discuss / Python / 打卡十二天

打卡十二天

Topic source

Nil_大黄

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

评论区有精华

wdnmd,看懂了,谢谢老哥

看评论就看懂了

精神小伙,讲的不错,给个赞。

乐乐吧吧

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

感谢您没有放弃回来详细分解说明,终于看懂了。

有为若是

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

研究了下,个人理解有两个点供参考:

1) consumer是一个生成器,但不是一般的‘有限’生成器,因为有while True语句,会循环执行代码命令的‘无限’生成器。循环中既收参数处理、打印语句、r变量赋值、也会持续抛出r值(状态信息‘200 OK’)(返回给调用者produce函数,因为produce函数内部的赋值语句)。

consume对象c执行过程中每一次的“中止”在yield r 语句执行后;consumer对象c执行过程的最终“终止”在于produce函数里的c.close(),这个代码的运行在produce函数不再给c进行send参数命令之后。

2) 因为yield的存在(教程里明确写到“Python里的yield不但可以返回一个值,还可以接收调用者发出的参数”、“consumer通过yield拿到消息,处理,又通过yield把结果传回”) 

consumer通过produce里send(n)将参数n发给consumer,然后进行处理,后续执行完print ‘n’语句和r变量的赋值语句后,又通过yield将r值(状态信息‘200 OK’)抛出,后续produce函数赋值给produec函数里的r变量,然后打印出还有r值格式化信息的语句。

备注:两个函数的内部变量(名)n,r改名不影响程序协作。调用者produce函数里的变量n可以改成k,将被调用者(生成器)里变量r改成c,不影响程序运行。

必须赞

看正文没看懂,看你的总结看懂了,非常感谢!

web_phper

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

赞,写得真不错,实话讲,比廖老师讲得好

详细


  • 1
  • 2

Reply