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

Dan*_*rex 0 python return function

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

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

def mean():
    vitaminA = 5
    calcium = 15
    vitaminD = 22
Run Code Online (Sandbox Code Playgroud)

我如何将这些值中的每一个都转换为另一个函数?我试过了:

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

def stDev():
    mean()
    print vitaminA
    print calcium
    print vitaminD
Run Code Online (Sandbox Code Playgroud)

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

Sea*_*ira 5

您只需要将调用结果分配给mean变量(或者在本例中为变量集):

vitaminA, calcium, vitaminD = mean()
print vitaminA
print calcium
print vitaminD
Run Code Online (Sandbox Code Playgroud)

Python允许您将任何可迭代的包解压缩为变量:

x, y, z = (1, 2, 3)
print "x: {x}, y: {y}, z: {z}".format(**locals())
Run Code Online (Sandbox Code Playgroud)

同样的原则适用于发电机:

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

w1, w2, w3 = generator_func()
print w1
print w2
print w3
# Even
# generators
# participate
Run Code Online (Sandbox Code Playgroud)

在Python 3中,您也可以解压缩:

head, *tail = range(1, 11)
print head  # 1
print tail  # [2, 3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)