繁体   English   中英

将列表中的任意数量的参数传递给函数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM