Python 模块中的公共变量
我有三个python文件,让我们称它们为Python 模块中的公共变量,python,Python,我有三个python文件,让我们称它们为master.py,slave1.py和slave2.py。现在slave1.py和slave2.py没有任何函数,但是需要使用相同的输入执行两个不同的操作(比如变量inp) 我想做的是从master调用两个从程序,并在master中指定一个输入变量inp,这样我就不必做两次。同样,我可以在一个主程序中改变两个从程序的输出 我希望将slave1.py和slave2.py的代码分开,以便在需要时可以单独调试它们,但当我尝试这样做时 #! /usr/bin/p
master.py
,slave1.py
和slave2.py
。现在slave1.py
和slave2.py
没有任何函数,但是需要使用相同的输入执行两个不同的操作(比如变量inp
)
我想做的是从master调用两个从程序,并在master中指定一个输入变量inp
,这样我就不必做两次。同样,我可以在一个主程序中改变两个从程序的输出
我希望将slave1.py
和slave2.py
的代码分开,以便在需要时可以单独调试它们,但当我尝试这样做时
#! /usr/bin/python
# This is master.py
import slave1
import slave2
inp = #some input
在我更改输入之前,slave1
和slave2
都会运行。据我所知,python导入模块的方式是首先执行它们。但是有没有办法延迟执行它们,以便我可以指定公共输入?或者通过任何其他方式指定来自同一位置的两个文件的输入
编辑:
slave1
和slave2
在给定特定初始条件下执行两种不同的模拟。由于两者的输出是相同的,我希望以类似的方式显示它们,并控制将模拟数据写入哪些文件。所以我认为将它们导入主文件是最简单的方法 您可以随时进行导入:
inp = #some input
import slave1
import slave2
请注意,这通常被认为是糟糕的设计-您最好让模块包含一个函数,而不是在导入模块时让它发生。您可以随时进行导入:
inp = #some input
import slave1
import slave2
请注意,这通常被认为是糟糕的设计-您最好让模块包含一个函数,而不是在导入模块时让它发生。将代码作为函数写入从属模块,导入函数,然后使用所需的任何输入从
主控
调用函数。如果需要有更多的状态信息,请考虑构造一个对象。 作为函数从你的从属模块中写入代码,导入函数,然后用你需要的任何输入从<代码>主代码>代码中调用函数。如果需要有更多的状态信息,请考虑构造一个对象。 看起来,程序的体系结构并不是最理想的。我认为有两个文件在使用pythonslave1.py
运行时会立即执行。这对于脚本编写来说很好,但是当您导入它们时,您会遇到麻烦,正如您所经历的那样
最好是将代码封装在函数中的从属文件中(如@sr2222所建议的),并从master.py
显式调用它们:
slave1.py/slave2.py
def run(inp):
#your code
大师
import slave1, slave2
inp = "foo"
slave1.run(inp)
slave2.run(inp)
如果您仍然希望能够独立运行从机,您可以在末尾添加如下内容:
if __name__ == "__main__":
inp = "foo"
run(inp)
看起来您的程序的体系结构并不是真正最优的。我认为有两个文件在使用
pythonslave1.py
运行时会立即执行。这对于脚本编写来说很好,但是当您导入它们时,您会遇到麻烦,正如您所经历的那样
最好是将代码封装在函数中的从属文件中(如@sr2222所建议的),并从master.py
显式调用它们:
slave1.py/slave2.py
def run(inp):
#your code
大师
import slave1, slave2
inp = "foo"
slave1.run(inp)
slave2.run(inp)
如果您仍然希望能够独立运行从机,您可以在末尾添加如下内容:
if __name__ == "__main__":
inp = "foo"
run(inp)
你能详细说明一下你打算在奴隶身上做什么,以及他们需要从主人那里得到什么信息吗。看起来您现在正在生成意大利面代码。您能否详细说明一下您打算在从机中执行什么操作,以及它们需要从主机获得什么输入。看起来您现在正在生成意大利面代码。