请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

委托生成器问题

1. 子生成器生产的值,都是直接传给调用方的;调用方通过.send()发送的值都是直接传递给子生成器的;如果发送的是 None,会调用子生成器的__next__()方法,如果不是 None,会调用子生成器的.send()方法;

#2 当调用方使用next()或者.send(None)时,都要在子生成器上调用next()函数,当调用方使用.send()发送非 None 值时,才调用子生成器的.send()方法;

这两句话不是很理解,如果调用方send(None)的时候委托生成器调用子生成器next方法那么子生成器怎么退出?

#子生成器
 while True:
        term = yield  # <2>
        if term is None:  # <3>
            break
   

正在回答 回答被采纳积分+3

1回答

提问者 东泽XD 2020-09-22 19:51:07

自习看伪代码的话好像并没有这个意思,只是第一步预激委托生成器的时候不管你用哪种方法委托生成器都是用next进行预激子生成器。(而且next和send(None)效果好像是等价的)

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信