food =yield food_list和 food = yield 这两个代码的意思区别是什么
时间: 2024-04-07 21:30:57 浏览: 129
基于python yield机制的异步操作同步化编程模型
这两个代码的意思是不同的。
第一个代码 `food = yield food_list` 中,`yield` 关键字后面跟着一个表达式 `food_list`,它的值将会被发送给生成器的调用者。当生成器被唤醒时,它会执行到 `yield` 这一行,暂停执行并等待调用者发送一个值。调用者可以通过 `send()` 方法来发送一个值,并且这个值会被赋值给 `food_list`。当生成器再次被唤醒时,它将会从上一次暂停的位置继续执行,同时 `food_list` 的值也会被更新。
第二个代码 `food = yield` 中,`yield` 关键字后面没有跟任何表达式。这表示生成器只会向调用者发送一个空值,也就是 `None`。当生成器被唤醒时,它会执行到 `yield` 这一行,暂停执行并等待调用者发送一个值。调用者可以通过 `send()` 方法来发送一个值,但是这个值将会被忽略掉。当生成器再次被唤醒时,它将会从上一次暂停的位置继续执行。
阅读全文