如何只运行一次具有多个值的def并将值用于另一个def?

时间:2016-09-07 22:07:37

标签: python return

我的问题非常简单,但不幸的是我无法找到解决问题的方法。

我想运行一个def A,它只从def B返回一次值。

我写了这段代码:

def A():
    x = 1
    y = 2
    z = 3
    return a,b,c

def B():
    d = A[0] + A[1]
    e = A[2] - A[0]
    print d,e

B()

如果我使用这段代码,它会运行四次!

提前致谢。

2 个答案:

答案 0 :(得分:2)

很简单,您的代码中存在错误,A是一个函数,您应该使用A()调用它来获取返回的值。相反,你使用A[0]这是不可下标的,你可以在B函数中分配一个临时变量,这样你就可以重复使用返回的值,改为下面应该有效:

In [54]: def A():
    ...:     x = 1
    ...:     y = 2
    ...:     z = 3
    ...:     return x,y,z  # I fixed your typo too
    ...:
    ...: def B():
    ...:     a = A()
    ...:     d = a[0] + a[1]
    ...:     e = a[2] - a[0]
    ...:     print(d,e)
    ...:
    ...: B()

    3 2

答案 1 :(得分:1)

我会这样做:

def B():
    a, b, c = A()
    d = a + b
    e = c - a
    print d,e

但请确保您的函数A()返回的是它声明的相同变量(x, y, z而不是a, b, c)。