Ole*_*leg 3 python generator python-3.x
为什么第二次next不回来"bye"?
def salute():
yield "hello"
yield "bye"
def greet_me():
print(next(salute()))
print(next(salute()))
greet_me()
Run Code Online (Sandbox Code Playgroud)
输出:
你好
你好
因为您每次打电话都要创建一个新的生成器salute().创建一次生成器,然后调用next它以获得两个yield以产生它们的值:
def greet_me():
gen = salute() # create the generator
print(next(gen)) # start it, goes to the first yield
print(next(gen)) # resume it, goes to second yield
Run Code Online (Sandbox Code Playgroud)
greet_me现在调用打印预期结果.
| 归档时间: |
|
| 查看次数: |
39 次 |
| 最近记录: |