Python 将参数传递给paho mqtt回调

Python 将参数传递给paho mqtt回调,python,multithreading,mqtt,paho,Python,Multithreading,Mqtt,Paho,我是Python新手,每次收到MQTT消息/主题时,我都会尝试运行一个控件来脉冲RGB LED。因此,我创建了一个对象threadObj,以运行线程并循环脉冲动画 我面临的问题是,我不知道如何将对象实例传递给on_消息mqtt回调。我一直在寻找部分函数的应用程序,但现在我不确定是正确的方式做它 这是主脚本: ledPulse类: 将对象实例作为值放在字典中(如果您想更改回调中的值并查看主代码中反映的更改,则可以将对象实例作为值放在任何可变对象(如list)中),然后在实例化MQTT客户机时将

我是Python新手,每次收到MQTT消息/主题时,我都会尝试运行一个控件来脉冲RGB LED。因此,我创建了一个对象
threadObj
,以运行线程并循环脉冲动画

我面临的问题是,我不知道如何将对象实例传递给
on_消息
mqtt回调。我一直在寻找部分函数的应用程序,但现在我不确定是正确的方式做它

这是主脚本:

ledPulse类:


将对象实例作为值放在字典中(如果您想更改回调中的值并查看主代码中反映的更改,则可以将对象实例作为值放在任何可变对象(如list)中),然后在实例化MQTT客户机时将对象实例作为userdata的一部分传递。例如:

client_userdata = {'myobject':threadObj}
client = mqtt.Client(userdata=client_userdata)
在on_消息回调中,您可以在userdata变量中访问此字典

userdata['myobject'] <- this is your threadObj

userdata['myobject']好吧,简单的答案是,在发出消息后,您立即添加一个“global threadObj”,这样您就可以使用它,并且它会工作。但是整个脚本需要清理
client_userdata = {'myobject':threadObj}
client = mqtt.Client(userdata=client_userdata)
userdata['myobject'] <- this is your threadObj