2015-02-03 3 views
-3

Я новичок в python.

У меня есть 3 Python файлов (модули) А, В и С.ИЗМЕНЕНИЕ ПЕРЕМЕННЫХ В ДРУГОЙ СКРИПТЕ: PYTHON

А является основным модулем.

B - это модуль, который имеет некоторые переменные и массивы, объявленные и инициализированные с использованием модуля numpy. Все переменные объявляются глобальными.

C представляет собой модуль, который должен записать данные в объявленных переменных в В.

Так я пытаюсь это:

модуль Run A.

Импорт * все переменные из B в A.

Объявлять глобальные переменные в C и записывать данные в них.

Но это не сработает. Когда я пытаюсь распечатать массив из A, он просто печатает инициализированный массив, а не измененный. Любая идея относительно того, как правильно заставить это работать.

Помощь очень ценится.

+0

Если вы указали минимальный пример кода, который показывает вашу проблему, и показывает, что вы что-то пробовали, вы можете получить ответ. –

ответ

1

Python намеренно делает такие вещи очень сложными. Когда вы это сделаете, вы, скорее всего, ошибетесь, и все пойдет не так. И когда они ошибаются, будет очень сложно выяснить, где была ошибка.

Вообще говоря, модуль A может считывать переменные из модуля B, но не может писать им. Когда вы пытаетесь записать переменную, вместо нее будет создана новая переменная с таким же именем. Это очень запутанно и, конечно же, следует избегать, если вы хотите оставаться здравым :)

Если вы хотите передавать данные из одного модуля/файла/скрипта/что-то в другое, вы обычно обертываете все функции. Вы можете сохранить B как есть, с глобальными (только для чтения) переменными, содержащими значения по умолчанию. Сделайте C набором функций, которые берут данные в качестве параметров и возвращают результат. От A сначала прочитайте переменные из B, как сейчас, затем начните вызывать функции в C, передавая соответствующие данные в качестве параметра и сохраняя результат в новой переменной.

+0

Спасибо, сэр, я, кажется, заставляю вас говорить. Я попробую ваш предложенный метод. –

Смежные вопросы