0
Mainthread:全局變量不是線程和MQTT收到蟒蛇之間共享
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect(Broker, 1883, 60)
client.on_log = on_log
client.loop_start()
global alarm
alarm = True
while True:
try:
if alarm == True:
...
和在功能上有變化而變化:
def on_message(client, userdata, msg):
message = str(msg.payload)
if message.lower() == 'alarm off': alarm = False
elif message.lower() == 'alarm on': alarm = True
它就像獨立的變量在功能和Mainthread我不能找到原因。
還有一個問題是它的一些其他選項每次都使全球變化,因爲這種方式設置變量爲全局在調用此函數時。只是爲了更好看的代碼。謝謝 – Roman
不,它只是告訴運行時使用全局版本,而不是爲'on_message'函數的每次調用創建一個新的局部變量 – hardillb