5

例如,如果我有一个需要多个输入的方法,如下所示:

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)

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

请帮忙。

4

2 回答 2

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

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

于 2013-04-19T13:53:20.767 回答
4

看起来你的代码有很多问题。线...

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

...建议Arg1,Arg2Arg3是字符串,您试图将其连接成一个以逗号分隔的字符串。

为了使SumOf函数工作,它需要传递整数值,所以如果Arg1和是字符串,您需要先使用函数将它们转换为整数,Arg2然后将它们打包成一个元组,类似于.. .Arg3int()

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

...此时您可以使用...调用该函数

SumOf(*Arguments)

...或者...

apply(SumOf, Arguments)

此外,您需要更改线路...

return sum

...到...

return Sum

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

于 2013-04-19T14:04:08.693 回答