Найти - Пользователи
Полная версия: Как передавать новое значение переменной из программы в модуль?
Начало » Python для новичков » Как передавать новое значение переменной из программы в модуль?
1
ricof
Есть программа для взаимодействия с 3d-принтером. Я прикрутил к ней модуль, который позволяет работать с текстовым дисплеем, тактовый кнопками и флешкой. Запускается программа, потом автоматически стартует модуль, который считывает файлы с флешки и выводит их на дисплей в виде списка. Список листается тактовыми кнопками и потом имя выбранного файла в переменной передаётся в основную программу из модуля. Программа печатает этот файл и нужно выводить процент печати на дисплей. Для отображния процесса печати в % в программе существует отдельная переменная. Но если я снова вызову модуль, работа основной программы приостановится, пока модуль снова не закроется. Как в режиме реального времени без костылей передавать в модуль значение переменной?
FishHook
ricof
Но если я снова вызову модуль, работа основной программы приостановится, пока модуль снова не закроется.
ricof
Как в режиме реального времени без костылей передавать в модуль значение переменной
Вы что-то с чем-то сильно путаете. Модули не вызывают и значения в них не передают. Модуль, это файл с питоним кодом.
ricof
FishHook
Вы что-то с чем-то сильно путаете. Модули не вызывают и значения в них не передают. Модуль, это файл с питоним кодом.
Возможно я не так выразился. У меня есть программа1 (П1) и программа2 (П2).
Запускается П1, потом автоматически запускается П2. П2 помещает в глобальную переменную имя файла и закрывается. П1 возобновляет работу, получает имя файла из этой переменной и грузит файл. Мне нужно чтобы П2 показывала процент загрузки, который она будет получать из П1

Сейчас у меня все выглядит так:
Программа 1:
...
import program
...
filename=program.main()
...
Программа 2:
global fname
fname="file_name"
return fname  
FishHook
Две программы запускаются в двух разных процессах. Они вообще никак не имеют никакой общей области видимости.
То есть вы не можете просто так объявить глобальную переменную, которая была бы глобальной для нескольких программ (процессов). Это не особенность питона, это вообще так работает любое ПО. Есть множество способов, как передать информацию из одного процесса в другой, это называется межпроцессное взаимодействие
doza_and
FishHook
Модули не вызывают и значения в них не передают.
Добавлю что если вам надо чтобы чтото вызывалось, то это называется функцией. В рамках одного процесса между функциями легко передать данные, в том числе через глобальную переменную.
JOHN_16
да все ж проще - у автора видимо есть модуль 1 в котором он делает импорт модуля 2
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB