Немного предыстории проблемы. Я пишу код в Python2.7, который работает нормально. Но я решил разбить его на модули для удобства использования и обслуживания, что является новым для меня, поэтому возникают некоторые проблемы. Хотя я смог заставить его работать с помощью метода хитов и пробных версий, но не уверен, что это правильный подход или нет, поэтому он делится здесь. Общий код здесь - это упрощенная репликация реального кода, управляющего той же логикой, порядком и подходом.В Python2.7 как использовать переменные из основного скрипта и других пользовательских функций
MainEx.py это скрипт работает на самом высоком уровне
from LogIn_1 import LogIn
global NumTry
NumTry = 2
LogIn()
# xx is here just to show NumTry variable is further used in MainEx script
xx = NumTry*3
В основном то, что я трудный общаться здесь переменная NumTry используется в MainEx.py (скрипт на самом высоком уровне), а также внутри LogIn(). И также будут использоваться другими функциями, которые я создаю.
LogIn_1.py является определенной пользователем функции
def LogIn():
from MainEx import NumTry
# following are some computations involving NumTry
print NumTry
Запуск MainEx.py дает результат:
2
2
Вопросы: 1. Не знаю, почему она приносит результат в два раза 2. кажется нечетным, MainEx импортирует LogIn_1 и LogIn_1, импортируя MainEx. Вид ситуации пинг-понга, импортирующей переменные друг от друга.
Я могу правый исход со следующими изменениями: MainEx.py
from LogIn_1 import LogIn
global NumTry
NumTry = 2
#LogIn()
# xx is here just to show NumTry variable is further used in MainEx script
xx = NumTry*3
LogIn_1.py
def LogIn():
from MainEx import NumTry
# following are some computations involving NumTry
print NumTry
LogIn()
Запуск MainEx.py дает результат:
2
I я пытаюсь понять лучшие практики, чтобы избежать будущих проблем.
спасибо @FMc, хотя я прибегал к одной большой программе, но это полезно и будет продолжать изучать модульный подход – Abacus