Python 从函数返回多个值时出现问题
我试图研究一种使用单个返回变量返回多个值的方法。我想要实现的是,我希望下面的代码能够像返回多个值一样工作,而不是返回一个元组Python 从函数返回多个值时出现问题,python,Python,我试图研究一种使用单个返回变量返回多个值的方法。我想要实现的是,我希望下面的代码能够像返回多个值一样工作,而不是返回一个元组 def my_data: test_data = 1, 2, 3, 4 # etc (i have a LOT of data here) return test_data 我得到的是: td = my_data() print td output : (1,2,3,4) 我希望函数的行为与执行以下代码的行为相同: return 1,2,3
def my_data:
test_data = 1, 2, 3, 4 # etc (i have a LOT of data here)
return test_data
我得到的是:
td = my_data()
print td
output : (1,2,3,4)
我希望函数的行为与执行以下代码的行为相同:
return 1,2,3,4
有办法吗
编辑
我将它与python ddt一起使用
@ddt
class testsuite_my_function_validations(unittest.TestCase):
@data(my_data())
def test_various_number(self, value):
test_number = value
# test the number
假设它有四个测试数据(1,2,3和4),我得到的是一个元组值,而不是这四个数字。但是当我
return 1,2,3,4
输出将有四个测试用例:
你的问题让人对你想要达到的目标感到困惑,但是 您可以像这样使用
列表
:
list1 = [1,2,3,4]
return list1
然后您可以从变量上获取这些值
关于的更多信息您的问题是,您试图实现的输出令人困惑,但是 您可以像这样使用
列表
:
list1 = [1,2,3,4]
return list1
然后您可以从变量上获取这些值
有关返回多个返回值的详细信息,如:
return 1, 2, 3, 4
实际上创建一个元组并返回它。它和我的一模一样
test_data = 1, 2, 3, 4
return test_data
在这两种情况下,您都可以将返回的元组存储在变量中或将其解压缩:
def my_data():
test_data = 1, 2, 3, 4
return test_data
a, b, c, d = my_data()
您需要做的是在decorator调用中使用以下方法解压缩元组:
将*
放在函数调用的最后一个参数之前,会将该参数解压为序列,并将序列元素作为单独的参数提供给函数。换句话说,
f(1, *(2, 3, 4))
相当于
f(1, 2, 3, 4)
请注意,元组通常用于固定长度的集合,通常是不均匀数据的集合。如果有大量数据,列表通常更合适。返回多个返回值,如下所示:
return 1, 2, 3, 4
实际上创建一个元组并返回它。它和我的一模一样
test_data = 1, 2, 3, 4
return test_data
在这两种情况下,您都可以将返回的元组存储在变量中或将其解压缩:
def my_data():
test_data = 1, 2, 3, 4
return test_data
a, b, c, d = my_data()
您需要做的是在decorator调用中使用以下方法解压缩元组:
将*
放在函数调用的最后一个参数之前,会将该参数解压为序列,并将序列元素作为单独的参数提供给函数。换句话说,
f(1, *(2, 3, 4))
相当于
f(1, 2, 3, 4)
请注意,元组通常用于固定长度的集合,通常是不均匀数据的集合。如果您有大量数据,列表通常更合适。什么意思?您对参数有问题吗?
返回1、2、3、4与返回测试数据
完全相同。您的意思是什么?您对参数有问题吗?返回1、2、3、4与返回测试数据
完全相同。