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)
我到底需要做什么?我想如果你从函数中的另一个函数返回值,你可以访问这些值吗?
您只需要将调用结果分配给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)