[英]Passing arbitrary number of arguments from list into function?
我有一个函数,它接受一个输入,然后一个* arg包含一个两元素元组的序列。 我还有一个SQL命令,根据我的数据库中的内容生成这样的元组列表。 这一切都很好,但我不知道如何将这些元组传递给函数。
我已经尝试将代码组装成一个字符串,然后用exec()执行它,无论如何都是草率的,但是甚至不起作用,因为exec忽略了函数中的return()值(包含我需要的输出)( )。 我已经尝试了eval(),它不起作用,因为被调用的函数有输入和eval无法处理的其他实际代码; 它只评估表达式。 我不认为我可以直接调用元组列表中的函数,因为那将被视为一个参数而不是(在这个具体示例中)三个,不是吗?
那么我应该如何将这个元组列表传递给我的函数,如果我有:
TupleList = [('a','b'),('c','d'),('e','f')]
Func(Argument1, *Args)
我想打电话给:
Func('ConstantValue',('a','b'),('c','d'),('e','f'))
同时仍然保留Func()的return()?
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')
>>>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.