如何在python中使用来自另一个函数的局部变量?

时间:2018-02-15 17:18:37

标签: python

def foo():

    results = []
    res = a + b
    results.append(res)
    res = a - b
    results.append(res)
    foo2()

def foo2():

    res = c + d
    results.append(res)
    res = c - d
    results.append(res)

给出错误“结果”不是全局变量。如何将“res”值附加到其他函数foo2()

的“结果”中

1 个答案:

答案 0 :(得分:0)

代码需要调用函数来获取任何结果。列表results位于函数foo()的范围内,但当我们从foo2()调用函数foo()时,foo2()也需要知道results 1}}是,所以我们将results列表作为参数传递给foo2()

由于我们要打印一个在函数中定义的变量(list results),我们需要使用return将该变量传递回调用函数。

一个完整的可运行示例:

# example values
a = 1
b = 2
c = 3
d = 4

def foo():
    results = []
    res = a + b
    results.append(res)
    res = a - b
    results.append(res)
    return foo2(results)  # pass results as an argument to other function

def foo2(results):
    """ this function receives results parameter """
    res = c + d
    results.append(res)
    res = c - d
    results.append(res)
    return results

result = foo()
print result   # [3, -1, 7, -1]