0

我有一个函数,它有点长,所以我想把它分解成多个函数。我的问题是我试图从一个函数中获取多个值并进入另一个函数,但不知道该怎么做。

例如,假设我正在使用这些值(我的程序要大得多)

def mean():
    vitaminA = 5
    calcium = 15
    vitaminD = 22

我如何将这些值中的每一个都放入另一个函数中?我努力了:

def mean():
    vitaminA = 5
    calcium = 15
    vitaminD = 22
    return (vitaminA, calcium, vitaminD)

def stDev():
    mean()
    print vitaminA
    print calcium
    print vitaminD

我实际上需要做什么?我想如果你从一个函数中的另一个函数返回值,你可以访问这些值吗?

4

2 回答 2

5

您只需将调用的结果分配mean给一个变量(或者在这种情况下,一组变量):

vitaminA, calcium, vitaminD = mean()
print vitaminA
print calcium
print vitaminD

Python 允许您将任何可迭代对象解压缩到变量中:

x, y, z = (1, 2, 3)
print "x: {x}, y: {y}, z: {z}".format(**locals())

同样的原则也适用于生成器:

def generator_func():
    yield "Even"
    yield "generators"
    yield "participate"

w1, w2, w3 = generator_func()
print w1
print w2
print w3
# Even
# generators
# participate

在 Python 3 中你也可以解包:

head, *tail = range(1, 11)
print head  # 1
print tail  # [2, 3, 4, 5, 6, 7, 8, 9, 10]
于 2013-06-25T01:18:57.083 回答
3

你在正确的轨道上。通过调用该mean()函数,您将获得那里返回的值(特别是变量)。现在您必须将它们分配到stDev(), 以获取值 - 如下所示:

 vitaminA, calcium, vitaminD = mean()

现在stDev()可以访问源自mean().

于 2013-06-25T01:18:47.317 回答