Я использую сервер, которому нужно взять несколько переменных из файла конфигурации, а затем ссылаться на эти переменные в остальной части кода.большинство из них передаются как локальные, но тот, который я пытаюсь изменить, должен быть глобальным и устанавливается только один раз.Я получаю «глобальную переменную не определена», когда пытаюсь использовать ее позже в программе.Переменная устанавливается в исходном файле и вызывается позже в потоке.
Я пробовал несколько вариантов объявления переменной, используя «global myVariable», и ничего не изменило вывод.Это для значения, которое передается в поток redis для передачи на машину linux через WLAN.
Первый файл:
import files
from SWConnection import Connection
STREAM_INBOUND = None
STREAM_OUTBOUND = None
if __name__ == '__main__':
city = getConfigVariable(Config, 'User', 'City')
STREAM_INBOUND = city + '_IN_TEST'
STREAM_OUTBOUND = city + '_OUT_TEST'
connection.clientHandler() ##Opens script to handle client connection
Второй файл:
class Connection(object):
def clientHandler(self):
newThread = ClientThread(client, ip, port, self.psql, self.rdb)
Третий файл:
class ClientThread(threading.Thread):
def function(self):
global STREAM_INBOUND
searchFromTime = int((time.time()-1)*1000)
returned_stream_results = self.rdb.xread({STREAM_INBOUND: str(searchFromTime)})
В настоящее время значение STREAM_INBOUND жестко закодировано, номы хотели бы иметь возможность установить его с помощью файла конфигурации, поэтому нам не нужно перекомпилировать изменения потока.