我有一个函数,需要一个输入,然后是一个* arg,其中包含两个元素的元组序列。我还有一个SQL命令,该命令根据数据库中的内容生成此类元组的列表。一切都很好,但是我不知道如何将这些元组传递给函数。
我尝试将代码汇编为字符串,然后使用exec()执行它,尽管如此,它还是草率的,但是甚至不起作用,因为该函数中的return()值(包含我需要的输出)被忽略exec()。我尝试过eval()无效,因为被调用的函数具有输入和eval无法处理的其他实际代码;它只计算表达式。我认为我不能直接在元组列表上调用该函数,因为那将被视为一个参数,而不是(在此特定示例中)三个参数,不是吗?
如果有的话,我应该如何将该元组列表传递给函数?
TupleList = [('a','b'),('c','d'),('e','f')]
Func(Argument1, *Args)
我想打电话给
Func('ConstantValue',('a','b'),('c','d'),('e','f'))
同时仍保留Func()的return()吗?
答案 0 :(得分:0)
def foo(arg1, *args):
print(arg1)
for arg in args:
print(arg)
spam = [('a', 'b'), ('c', 'd'), ('e', 'f')]
foo('ConstantValue', *spam)
# or which yield same result
foo('ConstantValue', ('a', 'b'), ('c', 'd'), ('e', 'f'))
输出
ConstantValue
('a', 'b')
('c', 'd')
('e', 'f')
ConstantValue
('a', 'b')
('c', 'd')
('e', 'f')
>>>