「已注销」 2022-12-22 09:13 采纳率: 0%
浏览 30
已结题

生成器函数里的语句yield和retrun有什么区别?

Generator函数里的语句yield和retrun操作中有什么区别?不都是返回数据项吗?

  • 写回答

1条回答 默认 最新

  • 於黾 2022-12-22 09:23
    关注

    return直接返回了,函数就结束了
    而yield是将返回值add进一个迭代器里
    循环还是继续走的
    而且这里跟你自己建个list然后把值add进去再return不同
    yield神奇的地方在于它是异步的,它一边动态的往迭代器里放数据,你同时就可以遍历打印,等函数执行完也打印完了,而return要等函数彻底走完一起返回所有的数据,在这之前整个是个假死的状态,然后突然所有的数据一起冒出来

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月30日
  • 已采纳回答 12月22日
  • 创建了问题 12月22日