调用第二个脚本和结束循环后,变量不会保留(Python)

时间:2018-02-16 09:12:16

标签: python loops

我正在从脚本1运行脚本2,但脚本2的输出未存储为脚本1中的变量。

SCRIPT1

def main():
    selection = int(raw_input("Enter Selection: "))
    if selection == 1:
        a = 1
        import script2
        result = script2.doit(a)
        print result
        return True

    elif selection == 0:
        return False

while main():
    pass

print result

脚本2

def doit(a):
    return a+2

虽然结果在迭代后被打印,但在结束循环后它不会被存储为“结果”。循环外部的打印结果给出错误“NameError:name'result'未定义”。

2 个答案:

答案 0 :(得分:1)

这是因为a是局部变量。当main函数返回一个值时,将清除局部变量。您应该将其作为引用传递或返回值并重新分配给全局变量。

答案 1 :(得分:0)

将全局结果添加到main()的主体中可以完成这项工作。对答案的假名称的归属。谢谢!

def main():
    global result
    ......