擅长:python、mysql、java
<p>变量被声明在函数的作用域之外,也就是说,你的函数看不到你在它的缩进之外声明的变量(或者在函数内部声明的变量也不会改变外部相同命名变量的值)。在</p>
<p>您需要做的是将这些变量作为函数参数传递,例如:</p>
<pre><code>run_once1 = True
run_once2 = False
def on_message(ws, message, run_once1, run_once2):
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
return run_once1, run_once2
run_once1, run_once2 = on_message (ws, message, run_once1=run_once1, run_once2=run_once2
</code></pre>
<p>但是,在您的情况下,它不起作用,因为您希望直接调用这个函数。然后,为了保持状态,我会将“on_message”写成类:</p>
^{2}$