我尝试使用单个返回变量研究返回多个值的方法.我想要实现的是,我希望下面的代码好像它返回多个值而不是返回一个元组
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
输出将有四个测试用例:
测试用例测试值1
测试用例测试值2
测试用例测试值3
测试用例测试值4
user2357112 .. 6
返回多个返回值,如下所示:
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()
你需要做的是在带有*
符号的装饰器调用中解压缩元组:
@ddt class testsuite_my_function_validations(unittest.TestCase): # v this star here @data(*my_data()) def test_various_number(self, value): test_number = value # test the number
*
在函数调用的最后一个参数之前放置一个将该参数解包为序列,并将序列元素作为单独的参数提供给函数.换一种说法,
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()
你需要做的是在带有*
符号的装饰器调用中解压缩元组:
@ddt class testsuite_my_function_validations(unittest.TestCase): # v this star here @data(*my_data()) def test_various_number(self, value): test_number = value # test the number
*
在函数调用的最后一个参数之前放置一个将该参数解包为序列,并将序列元素作为单独的参数提供给函数.换一种说法,
f(1, *(2, 3, 4))
相当于
f(1, 2, 3, 4)
请注意,元组通常用于固定长度的集合,通常是非均匀数据.如果您有大量数据,列表通常更合适.