python simpy错误返回值在生成器内

时间:2017-07-23 14:06:34

标签: python-2.7 syntax-error generator return-value

运行下面的代码时出错

File "simpy.py", line 4
    return 'Monty Pythons Flying Circus'
SyntaxError: 'return' with argument inside generator

这是code sample from simpy official site

我尝试了this solution given to a similar looking question,但后来又出现了以下错误:

Invalid yield value "Monty Pythons Flying Circus"

来自简洁网站的代码:

import simpy
def my_proc(env):
  yield env.timeout(1)
  return 'Monty Pythons Flying Circus'

env = simpy.Environment()
proc = env.process(my_proc(env))
env.run(until=proc)

我按照上面引用的解决方案尝试的修改代码如下:

import simpy
def my_proc(env):
  yield env.timeout(1)
  yield 'Monty Pythons Flying Circus'
  return
env = simpy.Environment()
proc = env.process(my_proc(env))
env.run(until=proc)

此代码提供了错误Invalid yield value "Monty Pythons Flying Circus"

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我遇到了相同的错误,并将其跟踪到代码here 读取Process类的代码和文档字符串:

  

生成器(也称为协程)可以通过以下方式暂停执行   产生一个事件。 Process将负责恢复生成器   具有该事件发生后的值。

我知道问题在于您没有产生事件,而是一个字符串