Как правильно определить глобальные переменные между файлами .py - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть проект Python с несколькими файлами .py.Один файл должен быть «контрольным» файлом, где параметры могут быть изменены.Другие файлы должны получать входные данные из этого управляющего файла и возвращать различные выходные данные.

Мой код работает, как и ожидалось, если я использую свежее ядро ​​(я использую Spyder в Anaconda), но после одного запуска, если я изменяюпараметр в контрольном файле, не все последующие переменные обновляются.

Я искал stackoverflow и google, но изо всех сил пытаюсь найти «правильный путь» для достижения этой цели.В реальном случае существует гораздо больше файлов с большим количеством взаимозависимостей, но я свел проблему к следующему простому примеру.

Например, control.py:

var = 42

file.py:

import control.py as con
var2 = con.var
print(var2)

Запуск file.py при первом выводе 42, как и ожидалось.Но если в control.py я изменяю на var = 43, сохраняю и снова запускаю file.py, я получаю 42

Я хочу, чтобы file.py в этом случае дал 43.

1 Ответ

0 голосов
/ 07 февраля 2019

Поскольку модуль уже импортирован, изменение не будет обнаружено при повторном запуске кода.

Чтобы принудительно повторно импортировать python, вы можете использовать следующую функцию:

import importlib
importlib.reload(con)

# After that
var2 = con.var
print(var2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...