Форум сайта python.su
0
Есть программа для взаимодействия с 3d-принтером. Я прикрутил к ней модуль, который позволяет работать с текстовым дисплеем, тактовый кнопками и флешкой. Запускается программа, потом автоматически стартует модуль, который считывает файлы с флешки и выводит их на дисплей в виде списка. Список листается тактовыми кнопками и потом имя выбранного файла в переменной передаётся в основную программу из модуля. Программа печатает этот файл и нужно выводить процент печати на дисплей. Для отображния процесса печати в % в программе существует отдельная переменная. Но если я снова вызову модуль, работа основной программы приостановится, пока модуль снова не закроется. Как в режиме реального времени без костылей передавать в модуль значение переменной?
Офлайн
568
ricof
Но если я снова вызову модуль, работа основной программы приостановится, пока модуль снова не закроется.
ricofВы что-то с чем-то сильно путаете. Модули не вызывают и значения в них не передают. Модуль, это файл с питоним кодом.
Как в режиме реального времени без костылей передавать в модуль значение переменной
Офлайн
0
FishHookВозможно я не так выразился. У меня есть программа1 (П1) и программа2 (П2).
Вы что-то с чем-то сильно путаете. Модули не вызывают и значения в них не передают. Модуль, это файл с питоним кодом.
... import program ... filename=program.main() ...
global fname fname="file_name" return fname
Отредактировано ricof (Апрель 27, 2016 19:51:32)
Офлайн
568
Две программы запускаются в двух разных процессах. Они вообще никак не имеют никакой общей области видимости.
То есть вы не можете просто так объявить глобальную переменную, которая была бы глобальной для нескольких программ (процессов). Это не особенность питона, это вообще так работает любое ПО. Есть множество способов, как передать информацию из одного процесса в другой, это называется межпроцессное взаимодействие
Офлайн
253
FishHookДобавлю что если вам надо чтобы чтото вызывалось, то это называется функцией. В рамках одного процесса между функциями легко передать данные, в том числе через глобальную переменную.
Модули не вызывают и значения в них не передают.
Офлайн
221
да все ж проще - у автора видимо есть модуль 1 в котором он делает импорт модуля 2
Офлайн