有一个生成器函数,n如果它大于某个数字,则该函数调用自身n - 1并将该数字乘以2的值写入生成器。以此类推,直到数字小于或等于某个数,那么就已经可以写下它的平方了。只是现在她不叫自己,谁来告诉你为什么?
def pip(n):
if n > 10:
pip(n - 1)
yield n * 2
else:
yield n ** 2
x = pip(11)
print(next(x))
22
有一个生成器函数,n如果它大于某个数字,则该函数调用自身n - 1并将该数字乘以2的值写入生成器。以此类推,直到数字小于或等于某个数,那么就已经可以写下它的平方了。只是现在她不叫自己,谁来告诉你为什么?
def pip(n):
if n > 10:
pip(n - 1)
yield n * 2
else:
yield n ** 2
x = pip(11)
print(next(x))
22
pip(n - 1)返回一个生成器,但该生成器的值不以任何方式使用(甚至没有请求)。要从生成器函数返回来自另一个迭代器的所有值,可以使用以下构造
yield from(从 Python 3.3 开始工作):它像这样的循环工作: