Я пишу клиент mqtt, который навсегда зацикливается при сборе данных.Python избегает глобальной переменной во время опроса данных
Массив в настоящее время глобальный, но поскольку это считается плохой практикой, я хочу этого избежать. Однако я не уверен, как вызвать 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()
EDIT: Я последовал совету CarloLobranos и я использую UserData в настоящее время в качестве входных данных (как API поддерживает это). Спасибо за все ответы!
Я не эксперт MQTT, но кратко глядя на документацию, выглядит, что ответ в том, что 'userdata' переменной –
@CarloLobrano Спасибо, это работает как шарм! userdata может быть задано как структура перед вызовом этих функций – kassio