5

たとえば、以下のように複数の入力を受け取るメソッドがあるとします。

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

リストに Arg1、Arg2、Arg3 の値があり、メソッドにアクセスしたい

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

メソッド SumOf を呼び出すために変数 Arguments を使用したい

SumOf(Arguments)

しかし、次のエラーが表示されます。

SumOf() takes exactly 3 arguments (1 given)

注: 上記は単なる例です。メソッド名と引数に基づいてさまざまなメソッドを実行するために必要です。

助けてください。

4

2 に答える 2

4

コードにかなりの問題があるようです。この線...

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

...suggestsおよびは文字列でありArg1、連結して単一のカンマ区切りの文字列にしようとしています。Arg2Arg3

SumOf関数を機能させるには、整数値を渡す必要があるため、、Arg1Arg2Arg3文字列の場合は、最初に関数を使用してそれらを整数に変換し、int()それらをタプルにパックする必要があります.. .

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

...その時点で、次のいずれかで関数を呼び出すことができます...

SumOf(*Arguments)

...また...

apply(SumOf, Arguments)

さらに、行を変更する必要があります...

return sum

...に...

return Sum

sum()...そうしないと、Python の組み込み関数への参照を返すことになります。

于 2013-04-19T14:04:08.693 に答える