Переменная общего модуля не обновляется? - PullRequest
1 голос
/ 28 марта 2019

Я пытаюсь разделить (установить / получить) переменную между пакетами и модулями, но значение не меняется.

Что я делаю не так?

shared.py

my_shared_value = 'init'

mod_write.py

import mylib.shared
mylib.shared.my_shared_value = 'changed'

mod_read.py

import mylib.shared

while True:
    # outputs always 'init' but should output 'changed' 
    # after mod_set.py was executed.
    print(mylib.shared.my_shared_value)

Выполнение (та же виртуальная среда)

# Terminal 1
python ./mod_read.py # outputs 'init', runs forever

# Terminal 2
python ./mod_write.py # doesn't affect the output of Terminal 1

1 Ответ

0 голосов
/ 28 марта 2019

Чтобы увидеть результат файла mod_write.py, вам также необходимо импортировать этот файл (но после первого импорта).

В вашем случае вы выполняете файлы отдельно, поэтому вы не видитеожидаемый результат.

Попробуйте следующим образом:

import mylib.shared
import mylib.mod_write

while True:
    # outputs always 'init' but should output 'changed' 
    # after mod_set.py was executed.
    print(mylib.shared.my_shared_value)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...