如何使用单个变量而不是在Python中传递多个Arguments

时间:2013-04-19 13:44:36

标签: python

比如说我是否有一个方法需要多个输入,如下所示:

def SumOf(Arg1,Arg2,Arg3):
    Sum = Arg1+Arg2+Arg3
    return sum

我在列表中有Arg1,Arg2,Arg3的值,我想访问该方法

Arguments = Arg1 + "," +  Arg2 + "," + Arg 3

我想使用变量Arguments来调用方法SumOf

SumOf(Arguments)

但是我收到以下错误:

SumOf() takes exactly 3 arguments (1 given)

注意:以上只是一个例子,我需要根据方法名称和参数执行不同的方法。

请帮忙。

2 个答案:

答案 0 :(得分:7)

Arguments = 1, 2, 3
SumOf(*Arguments)

(*)运算符将参数解包为多个参数。

答案 1 :(得分:2)

您的代码看起来有很多问题。这条线...

Arguments = Arg1 + "," +  Arg2 + "," + Arg3

...建议Arg1Arg2Arg3是字符串,您尝试将其连接成一个逗号分隔的字符串。

为了让SumOf函数起作用,需要传递整数值,因此如果Arg1Arg2Arg3是字符串,那么你将会需要首先使用int()函数将它们转换为整数,然后将它们打包成元组,类似于......

Arguments = (int(Arg1), int(Arg2), int(Arg3))

...此时您可以使用...

调用该函数
SumOf(*Arguments)

...或...

apply(SumOf, Arguments)

此外,您还需要更改行...

return sum

...到...

return Sum

...否则你最终会返回对Python内置sum()函数的引用。