我有一个功能,它有点长,所以我想把它分解成多个功能。我的问题是我试图从一个函数中获取一些值并进入另一个函数,并且我不知道该怎么做。
例如,假设我使用的是这些值(我的程序要大得多)
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
我到底需要做什么?我想如果你从函数中的另一个函数返回值,你可以访问这些值吗?
答案 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()
。