【发布时间】:2017-03-22 15:33:06
【问题描述】:
我正在尝试使用 Simpy 来模拟在城市网格周围移动汽车的一些行为。但是,我在概念上难以理解何时使用类似
的东西yield self.env.timeout(delay) 或 yield env.process(self.someMethod())
而不是只调用方法self.someMethod()。
在非常理论的层面上,我了解yield 语句和生成器如何应用于可迭代对象,但不太确定它与Simpy 的关系。
Simpy 的教程还是挺密集的。
例如:
class Car(object):
def __init__(self, env, somestuff):
self.env = env
self.somestuff = somestuff
self.action = env.process(self.startEngine()) # why is this needed? why not just call startEngine()?
def startEngine(self):
#start engine here
yield self.env.timeout(5) # wait 5 seconds before starting engine
# why is this needed? Why not just use sleep?
env = simpy.Environment()
somestuff = "blah"
car = Car(env, somestuff)
env.run()
【问题讨论】:
-
Python 中的注释以
#开头,而不是//。 -
糟糕,谢谢。在将代码粘贴到 SO 后,我添加了该评论。