Python 使发电机重新发电
我会这样做:Python 使发电机重新发电,python,generator,Python,Generator,我会这样做: def walk(samples): for d in range(samples): yield d def walk200(): for d in walk(200): yield d 但实际上我想要的是,让代码更短: def walk200(): reyield walk(200) 如何reyield?Python 3.3及更高版本: def walk200(): yield from walk(200)
def walk(samples):
for d in range(samples):
yield d
def walk200():
for d in walk(200):
yield d
但实际上我想要的是,让代码更短:
def walk200():
reyield walk(200)
如何reyield
?Python 3.3及更高版本:
def walk200():
yield from walk(200)
对于较低版本,您只能使用发布的代码。在您的特定示例中,您可以简单地
返回walk(200)
,这在所有python版本中都适用<代码>从中产生的收益仅在某些情况下是必需的。Python 3.x:从walk中产生的收益(200)
@MosesKoledoye,其中x>=3。你能澄清一下吗?何时以及为什么需要,何时不需要?@dangonfast(1)如果在一个函数中有多个yield语句,并且只想将其中一些语句委托给另一个函数,或者更重要的是(2)如果将生成器用作协程,请参阅