你的功能是正确的。当您编写时return my_array,my_variable
,您的函数实际上是返回一个元组(my_array, my_variable)
。
您可以首先将 的返回值分配my_function()
给一个变量,这就是我描述的这个元组:
result = my_function()
接下来,由于您提前知道元组中有多少项,您可以将元组解压缩为两个不同的值:
result_array, result_variable = result
或者您可以在一行中完成:
result_array, result_variable = my_function()
与返回元组和元组解包相关的其他注意事项:
如果我的函数可以None
在非异常失败或空情况下返回,我有时会将这两个步骤分开:
result = my_function()
if result == None:
print 'No results'
return
a,b = result
# ...
除了解包,您还可以使用它们的索引从元组中访问指定的项目:
result = my_function()
result_array = result[0]
result_variable = result[1]
如果出于某种原因您有一个 1 项元组:
return (my_variable,)
你可以用同样的(有点尴尬的)单逗号语法来解压它:
my_variable, = my_function()