3
为什么第二个next
不返回"bye"
?接下来发电机不会继续上次呼叫
def salute():
yield "hello"
yield "bye"
def greet_me():
print(next(salute()))
print(next(salute()))
greet_me()
输出:
你好
你好
为什么第二个next
不返回"bye"
?接下来发电机不会继续上次呼叫
def salute():
yield "hello"
yield "bye"
def greet_me():
print(next(salute()))
print(next(salute()))
greet_me()
输出:
你好
你好
因为你正在创建每次调用salute()
时间新发生器。创建发电机上一次和然后呼叫next
让双方的收益率产生的价值:
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
调用greet_me
现在打印预期的结果。
不好意思问现在:( – Oleg
从来没有感到不好意思问一个问题! –
@ Oleg同意Rolf,我们都一直在那里,觉得:) –