Python 3.x 关闭发电机后,如何获取发电机的返回值?
我想在关闭生成器后获得返回值。这是不允许的Python 3.x 关闭发电机后,如何获取发电机的返回值?,python-3.x,Python 3.x,我想在关闭生成器后获得返回值。这是不允许的 def generator_alpha(): try: yield "z" except GeneratorExit: pass return "t" if __name__ == "__main___": myAlphas = generator_alpha() next(myAlphas) myAlphas.close() #now what should i
def generator_alpha():
try:
yield "z"
except GeneratorExit:
pass
return "t"
if __name__ == "__main___":
myAlphas = generator_alpha()
next(myAlphas)
myAlphas.close()
#now what should i do let me get 't'?
非常抱歉!我先问了一个问题,我的英语很差。我不知道如何使代码变得漂亮。我的代码缩进在哪里?当你回答这个问题时,你选择应该在代码块中的文本,然后使用Ctrl-K或单击编辑器中的
{}
按钮,它将把它放在代码块中。从文档中:“捕获GeneratorExit
异常并返回值是非法的,将触发运行时错误
”. 您试图执行的操作被明确禁止,尽管我不知道其背后的原因-似乎可以很容易地将其作为.close()
的返回值。(我想有一个反对意见是,您无法区分实际返回的None
,以及由于GeneratorExit
)而退出的常见情况,为什么要在这个生成器中捕获生成器异常?@JonClements非常感谢。我明白了:)