0

我有个问题。

我有这部分代码:

        if command in ['ON', 'OFF', 'TOGGLE']:
        ret['success'] = "The %s command has been succesfully sent!" % (command.upper())
        self.write(tornado.escape.json_encode(ret))
        self.finish()
    elif command == 'HOWMANY':
        opcodegroupr = "A0"
        opcoder = "85"
    elif command == 'IDENTIFY':
        opcodegroupr = "A0"
        opcoder = "81"

我想完成命令打开、关闭、切换的处理程序。相反,对于命令 howmany 和 identify 我将为其他详细说明创建新变量。

但是,当我发送例如 on 命令时,我收到此错误:

File "./wsn.py", line 1024, in get
'&opcode_group=', opcodegroupr,
UnboundLocalError: local variable 'opcodegroupr' referenced before assignment

就像 self.finish() 不会关闭处理程序。

哪里有问题?

非常感谢你。

4

1 回答 1

0

只有这个部分代码我假设你错过了回报。 self.finish()关闭请求,但不从函数返回。

if command in ['ON', 'OFF', 'TOGGLE']:
    ret['success'] = "The %s command has been succesfully sent!" % (command.upper())
    self.write(tornado.escape.json_encode(ret))
    self.finish()
    return           # self.finish() finishes the request - doesn't return
else ...
于 2013-03-01T15:29:56.233 回答