の代入の前に参照されたローカル変数私は上記のコードでは、私はのWebSocketを開いていると私は、新しいメッセージを受信するたびに、その後、on_message()
関数が呼び出されエラー:パイソン
run_once1 = True
run_once2 = False
def on_message(ws, message):
if 'Temp' in message:
if run_once1 is True:
#Run this code once
print("Temp is present")
run_once1 = False
run_once2 = True
else:
if run_once2 is True:
#Run this code once
print("Temp is not present")
run_once1 = True
run_once2 = False
def on_error(ws, error):
print(error)
def on_close(ws):
print("CLOSE ")
def on_open(ws):
print("OPEN")
msg = "<MESSAGE>"
ws.send(msg)
ws = websocket.WebSocketApp(URL, on_message= on_message, on_error=on_error, on_close=on_close)
ws.on_open = on_open
ws.run_forever()
のpythonのWebSocketクライアントコードを持っています。この関数の中で、メッセージにタグTemp
があります。それが存在する場合、私はそれを印刷して一度だけ実行したいだけです。次にTemp
が存在しないときは、印刷してそのコードを1回だけ実行したいと思います。しかし、上記のコードはエラーを与える:それは私に、このエラーを与えないように、私はこれらの変数を記述する必要があります
error from callback <function on_message at 0x000001D35366D840>: local variable 'run_once1' referenced before assignment
error from callback <function on_message at 0x000001D35366D840>: local variable 'run_once2' referenced before assignment
。
おかげであなたはその関数のグローバルとして宣言する必要がある関数内のグローバル変数に代入するために