我有两个返回值的脚本。一个Scipt的值由第二个大脚本使用。我试图从一个单独的main()脚本中多次运行两次,同时每次#time每次运行时都更改一个变量。我可以运行它们一次而没有问题,但是我无法重复#那个过程,我在做什么错了?
脚本1.py:
list1 = [1,2,3,4,5,6,7,8]
var1 =5
var2 =10
var3= 20
var4= 30
var5= 40
脚本2.py:
import Script1
question=input('What variable do you want to use ??')
def mult(question):
[i*eval(question) for i in list1]
mult()
现在,我想自动运行n次。 我尝试过:
Script3.py(主程序):
import Script2
for i in range(0,10):
import Script2
,但它只能运行一次并停止。 帮助将不胜感激。
答案 0 :(得分:0)
根据您的评论
我手工输入的值...然后将它们导入第二个 脚本根据我要分析的内容修改它们,然后等待 输出。 ...我的意思是我可以将1和2融合在一起,我希望 指向一些Os.module和子过程并学到一些东西。 可以做OOP).. new。 ...像os.execute(Script2)n次.....我猜 那不存在?
我会推荐以下结构,然后在Script3.py中更改/添加方法以完成任务。
Script1.py
from Script2 import Script2
Script2 = Script2()
Script2.getInput()
Script2.py
from Script1 import Script1
class Script2:
data = Script1()
list1 = data.returnList()
def getInput(self):
for i in self.list1:
question = input("What variable would you like to change? ")
variable = input("Enter the variable: ")
self.data.setVariable(question, variable)
Script3.py
class Script1:
def __init__(self):
self.list1 = [1, 2, 3, 4, 5, 6, 7, 8]
self.var1 = 5
self.var2 = 10
self.var3 = 20
self.var4 = 30
self.var5 = 40
def returnList(self):
return self.list1
def setVariable(self, var, value):
# use this method to set the variables
答案 1 :(得分:-1)
对于这种情况,我建议将要运行n的行放置在一个函数中,然后从刚导入的模块中调用该函数。
例如,在脚本2中,与fake.db %>%
group_by(Student) %>%
arrange(Week) %>%
mutate(Obs = cumsum(Week != lag(Week, default=first(Week))) + 1)
函数一起,还具有执行您要执行的操作的函数:
mult()
定义后,您可以将Script2导入您的第三个脚本并按如下所示调用特定函数:
import Script1
def function_name():
question=input('What variable do you want to use ??')
mult(question)
def mult(question):
[i*eval(question) for i in list1]