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 i の場合、他の詳細のために新しい変数を作成します。

しかし、たとえば 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 に答える