2013-08-10 2 views
0

Как использовать переменные, которые существуют в основной программе в боковой программе? Например, если бы у меня был Var1 в основной программе, как бы я использовал его в боковой программе, как бы я, например, напечатал ее?Основные программные переменные в боковых программах (Python)

Вот что я прямо сейчас:

#Main program 
Var1 = 1 

#Side program 
from folder import mainprogram 
print(mainprogram.Var1) 

Это я думаю, что будет работать, если он не запустить основную программу, когда она импортирует его, потому что у меня есть другие функции, которые выполняются в нем. Как импортировать все основные данные программы, но не выполнить ее? Единственное, что я думал о том, чтобы импортировать эту конкретную переменную из программы, но я не знаю, как это сделать. Что я имею в голове:

from folder import mainprogram 
from mainprogram import Var1 

Но он все еще выполняет mainprogram.

+0

Связано: [Что делает 'if __name__ ==" __main __ ":' do?] (Http://stackoverflow.com/questions/419163/what-does-if-name-main-do) –

+0

Я не Понимаю. Как это относится к моему вопросу, где я хочу использовать переменные, которые у меня есть в основной программе в боковой программе, и, возможно, редактировать их? – Justin

+0

@Justin Это относится к вашей проблеме «mainprogram', выполняемой при ее ввозе. –

ответ

2

Ваш подход в основном правильный (за исключением from folder import mainprogram - это выглядит немного странно, если вы не хотите импортировать функцию с именем mainprogram из сценария Python с именем folder.py). Вы также заметили, что импортированный модуль выполняется при импорте. Обычно это то, что вы хотите.

Но если есть части модуля, который вы только хотите выполнить, когда он запущен directy (как в python.exe mainprogram.py), но не при выполнении import mainprogram, затем оберните те части программы в if блоке, как это:

if __name__ == "__main__": 
    # this code will not be run on import 
+0

Ничего себе. Благодарю. Кроме того, я помещаю «из основной папки импорта mainprogram», потому что сначала он не позволял мне импортировать главную программу, даже если она была в той же папке, и когда я поставил перед собой инструкцию «из папки», она сработала. Теперь по какой-то нечетной причине он позволяет мне импортировать его без этого оператора «from». – Justin

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