存在一种情况,我有一个获取函数,它返回一组项目的元组。我有一个设置函数,并希望它能接受单个项或者作为多个参数处理该元组的结果。但是,如果我在设置函数中使用 *args
作为参数以便接受可变数量的参数,那么它在两种情况下都不能按预期工作。
def get():
return 0, 1, 2, 3
def set(*numbers):
for i in range(len(numbers)):
print(numbers[i])
single = 0
multiple = get()
set(single)
set(multiple)
set(single)
按预期工作并打印一个 0
,而 set(multiple)
却未能按预期工作,它打印了一个 (0, 1, 2, 3)
元组,而不是遍历这些值并分别打印 0, 1, 2, 3
。在用户不必手动解构 get
函数返回结果后再传递给 set
函数的情况下,最优雅的解决方案是什么?