【发布时间】:2017-02-16 14:01:47
【问题描述】:
我正在写一个 mqtt 客户端,它在收集消息数据时一直在循环。
该数组目前是全局的,但由于这被认为是不好的做法,我想避免这种情况。但是我不确定如何使用另一个参数调用 on_message。
如何避免使用数组作为全局变量?
def on_message(client, userdata, msg):
global array
array.append(msg.payload)
array = []
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("JOHN", 1883, 60)
client.loop_forever()
编辑:我遵循 CarloLobranos 的建议,现在使用 userdata 作为输入(因为 API 支持)。 感谢所有答案!
【问题讨论】:
-
我不是 mqtt 专家,但简单看一下文档,答案似乎就在那个
userdata变量中 -
@CarloLobrano 谢谢,这就像一个魅力!在调用这些函数之前,可以像结构体一样设置用户数据
标签: python global-variables publish-subscribe