Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
副程序中的主程序变量(Python)_Python - Fatal编程技术网

副程序中的主程序变量(Python)

副程序中的主程序变量(Python),python,Python,如何在副程序中使用主程序中存在的变量?例如,如果我在主程序中使用Var1,我将如何在副程序中使用它,例如,我将如何打印它 以下是我现在拥有的: #Main program Var1 = 1 #Side program from folder import mainprogram print(mainprogram.Var1) 我认为如果在导入主程序时它没有运行主程序,这会起作用,因为我在其中执行了其他函数。如何导入所有主程序数据,但不让其执行? 我唯一想到的就是从程序中导入那个特定的变量,但

如何在副程序中使用主程序中存在的变量?例如,如果我在主程序中使用Var1,我将如何在副程序中使用它,例如,我将如何打印它

以下是我现在拥有的:

#Main program
Var1 = 1

#Side program
from folder import mainprogram
print(mainprogram.Var1)
我认为如果在导入主程序时它没有运行主程序,这会起作用,因为我在其中执行了其他函数。如何导入所有主程序数据,但不让其执行? 我唯一想到的就是从程序中导入那个特定的变量,但我不知道怎么做。我脑子里想的是:

from folder import mainprogram 
from mainprogram import Var1

但是它仍然超出了mainprogram。

您的方法基本上是正确的(除了从文件夹导入mainprogram导入的
——这看起来有点奇怪,除非您想从名为
folder.py
的Python脚本导入名为
mainprogram
)的函数。您还注意到,导入时会执行导入的模块。这通常是你想要的

但是,如果模块的某些部分只希望在直接运行时执行(如在
python.exe mainprogram.py
中),而在执行
import mainprogram
时不执行,则将程序的这些部分包装在
if
块中,如下所示:

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

相关:我不明白。这与我的问题有什么关系?我想在什么地方使用我在主程序中的变量,或者在副程序中编辑它们?@Justin这与你在导入时执行
mainprogram
有关。啊。现在我有点理解了为什么它是相关的。听起来你需要学习如何创建自己的模块,以便导入语法能够找到它们。我建议开始。哇。谢谢另外,我放了“from folder import mainprogram”,因为一开始它不允许我导入mainprogram,即使它在同一个文件夹中,当我把“from folder”语句放在它前面时,它工作了。现在出于某种奇怪的原因,它允许我导入它,而不使用“from”语句。