|
发表于 2020-6-20 17:13:22
|
显示全部楼层
本楼为最佳答案
- def get_primes(number):
- while True:
- if is_prime(number):
- number = yield number
- number += 1
复制代码yield 关键字返回 number 的值,而像 other = yield foo 这样的语句的意思是,“返回 foo 的值,这个值返回给调用者的同时,将 other 的值也设置为那个值”。你可以通过 send 方法来将一个值“发送”给生成器。
看看甲鱼哥的扩展阅读,这边解释就是你问的具体含义
只是我们这里的 :
data = yield
后面是空的 , 那么就是默认返回的是 None
当我们用 send 发射送给 生成器一个值时候,data 就会等于我们 send 的那个值,举个小例子:
def a():
while True:
x = yield
print(x)
c = a()
print(c.send(None))
print(c.send('---'))
结果会是:
None # 第一个 None 由 print(c.send(None)) 打印
--- # 这个由 print(x) 打印
None # 这个由 print(c.send('---')) 打印
|
|