从函数内的函数访问多个值

时间:2013-06-25 01:18:11

标签: python function return

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

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

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

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

2 个答案:

答案 0 :(得分: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]

答案 1 :(得分:3)

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

 vitaminA, calcium, vitaminD = mean()

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

的值