У меня есть программа python, которую я написал. Эта программа python вызывает функцию внутри модуля, который я также написал, и передает ему некоторые данные.Имейте Python дождитесь окончания функции перед продолжением работы с программой
программа:
def Response(Response):
Resp = Response
def main():
myModule.process_this("hello") #Send string to myModule Process_this function
#Should wait around here for Resp to contain the Response
print Resp
Эта функция обрабатывает его и передает его обратно в ответ на функцию отклика в основной программе.
MyModule:
def process_this(data)
#process data
program.Response(data)
Я проверил и все данные передаются правильно. Я отказался от импорта и обработки данных, чтобы этот вопрос был как можно более кратким.
Мне нужно найти способ, чтобы Python подождал, чтобы он действительно содержал ответ, прежде чем продолжить работу с программой. Я искал потоки и использовал семафоры или использовал модуль Queue, но я не уверен на 100%, как бы я включил либо в свою программу.
Вы знаете о том, что поток программы будет первым проходить через 'myModule.process_this («привет»)' , и ничего больше не будет вызвано или обработано до тех пор, пока 'process_this' не будет завершен? В чем твоя проблема? – nbro
Я уверен, что это не так, потому что всякий раз, когда я пытаюсь сделать что-либо с Resp, он говорит, что он не определен. Я попытался сделать его глобальным и изменить его область действия, но он все еще ошибки и говорит, что он не определен. Итак, я решил, что это должно быть потому, что он пытается использовать переменную до того, как она была назначена в другом модуле. – Brewer
Функция process_this в myModule имеет функции, которые она запускает, обрабатывая данные, которые я передаю ей. Таким образом, возможно, это связано с тем, что этот process_this завершается, и моя программа все еще пытается получить доступ к переменной до того, как относительные функции myModule присваивают ей значение. – Brewer