sar*_*gas 5 yield coroutine python-3.x
当您创建 Python 3 生成器并立即开始运行时。您会收到如下错误:
TypeError: can't send non-None value to a just-started generator
Run Code Online (Sandbox Code Playgroud)
为了继续(向它发送消息或从它获取某些东西),您首先必须调用__next__它:next(gen)或将 None 传递给它gen.send(None)。
TypeError: can't send non-None value to a just-started generator
Run Code Online (Sandbox Code Playgroud)
两种方式都会产生相同的结果(启动生成器)。
有什么区别,如果有的话,从发电机之间next(gen),而不是gen.send(None)?
当调用 send() 来启动生成器时,必须使用 None 作为参数来调用它,因为没有可以接收该值的 Yield 表达式。
调用next()生成器开始执行,直到第一个可以将非值发送到其中yield的表达式,该表达式将成为该表达式的值(例如,)。Noneyieldx = yield
和 的next(gen)行为gen.send(None)方式相同(即使用上没有区别)。
| 归档时间: |
|
| 查看次数: |
440 次 |
| 最近记录: |