您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

返回生成器以及Python 3.3中的yield

返回生成器以及Python 3.3中的yield

这是Python 3.3的新功能(如注释所述,它甚至在3.2中也不起作用)。很像return在发电机中早已等效raiseStopIteration()return <something>在发电机中现在等效raise StopIteration(<something>)。因此,您看到的异常应打印为StopIteration:3,并且可以通过value异常对象上的属性访问该值。如果将生成器委派给使用(也是新的)yield from语法,则为结果。有关详细信息,请参见PEP 380

def f():
    return 1
    yield 2

def g():
    x = yield from f()
    print(x)

# g is still a generator so we need to iterate to run it:
for _ in g():
    pass

这打印1,但不是2

python 2022/1/1 18:39:05 有251人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶