我们的讲师给了我们一些代码来帮助我们完成一项任务,当我尝试运行它时,我遇到语法错误。我根本没有触及过这些代码,它意味着在没有我们改变任何东西的情况下运行。这是我们给出的代码的一半:
class Flusher(MessageProc):
def main(self):
super().main()
print('before start message')
self.receive(
Message(
'start',
action=self.flush))
print('after start message')
self.receive(
Message(
ANY,
action=lambda data:print('The first thing in the queue after the flush is', data)))
def flush(self, *args):
self.receive(
Message(
ANY,
action=self.flush), # recursively call the flush method
TimeOut(
0,
action=lambda: None)) # when no more messages return
抛出异常的行是:
action=lambda data:print('The first thing in the queue after the flush is', data)
这是我第一次使用Python,所以请有人解释什么是错的,我应该怎么做才能解决它。
编辑:错误跟踪是:
File "./demo_timeout.py", line 18
action=lambda data:print('The first thing in the queue after the flush is' + data)))
^
SyntaxError: invalid syntax
答案 0 :(得分:1)
该代码是Python 3,您尝试使用Python 2运行它。如果您在Python 3中运行它,那么您应该很好。
如何切换到3完全取决于您的执行环境,但是您已经拥有一个名为python3
的命令的机会很大;如果是这样,您应该使用它而不是python
来运行提供的代码。
如果您还没有python3
,那么您需要安装它,不过您要在系统上安装软件。