-1

这是我的代码:

from SimPy.Simulation import *

class Message(Process):
    def arrive(self, destination):
        yield hold, self, 2
        try:
            print "%s %s going to %s" % (now(), self.name, destination.name)
            self.interrupt(destination)
        except NameError, x:
            print "%s is out of reach" % x

我想要做的是打印出目的地在其名称不存在时无法到达,但我仍然遇到通常的python错误:

Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    message.arrive(node2)
NameError: name 'node2' is not defined
4

1 回答 1

0

方法中不会出现您的名称错误。它发生方法被调用之前。

node2Python在将 的值传递node2给方法之前尝试解析message.arrive()。方法代码永远不会执行。

如果你只是node2在你的 shell 中输入,你会得到同样的错误,你没有定义它,所以 Python 也不知道如何使用它的值。

于 2013-03-24T12:28:23.853 回答