如何在Python中的模块之间调用生成的变量



我现在正在研究Python算法。我在def constraint()中生成了一个名为raw_constraint的字符串,类似于:

def constraint():
val=4
ind=[]
for i in range(1,7):
for j in range(val,val+i):
val = val+1
ind.append(j)
if(i < 6):
boundNode.insert(j, 'x%d' % (j-(2*i+1)))
raw_constraint = str(boundNode[j]) + " + " + str(boundNode[j-(2*(i+1))]) + " <= " + str(boundNode[(j-(2*(i+1))+i)] ) + " + " + str(boundNode[(j-(2*(i+1))+i)+1])

我想在另一个名为constraintBuild()的模块中对raw_constraint进行更多操作。我现在想知道如何在名为constraintBuild()def中调用raw_constraint

(我在这里假设,当你说"模块"时,你的意思是"函数"。(你要么需要使它成为两个函数都可以访问的全局变量,要么让constraint将它返回给调用者,然后将它作为参数传递给constraintBuild

示例:

raw_constraint = ''
def constraint():
global raw_constraint
# Your code
def constraintBuild():
global raw_constraint
# Your code

def constraint():
# Your code
return raw_constraint
def constraintBuild(raw_constraint):
# Your code
# Outer code
raw_constraint = constraint()
constraintBuild(raw_constraint)

后者通常是首选,因为应尽可能避免使用全局变量。

最新更新