1

関数に引数のリストを与えるための最良の方法を探しています:

def myFunc(*args):
    retVal=[]
    for arg in args:
        retVal.append(arg+1)
    return "test",retVal

問題は、パラメーターのリスト全体の2倍を記述する必要があるため、関数に渡すパラメーターのリストが長い場合は非常に煩わしくなり、完全な名前のパラメーターが10個以上ある場合は、実際に(実際には) ) 重い。

test,alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota=myFunc(alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota)

だから私はこのようなことを考えました:

w=alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota
test,w=myFunc(w)

しかし、それから私はしなければなりません:

alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota=w

関数からパラメーターのリストを取得して取得するためのより短い方法はありますか?または、パラメータを直接変更するための関数へのポインタを指定しますか?

これは私が探しているものです:

w=alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota
test,w=myFunc(w)

# And directly get my parameters modified to be able to print them :
print alpha,[...],iota
4

2 に答える 2

4

2つのオプション:

  1. ロジックを複数の関数に分割して、引数の数を減らしてみてください。

  2. 1.)が不可能な場合は、辞書を1つの引数として使用できます。つまり、すべての引数をカプセル化します。これは柔軟性があり(パラメーターを削除または追加しても、関数の署名は同じままです)、ほとんどの場合読み取り可能なソリューション(辞書内の意味のあるキー)になります。

于 2011-08-10T14:43:13.073 に答える
3

関数にdictを返すようにするだけです。次に、myFunc(**yourdict)を使用してdictアイテムを引数として使用しreturn yourdict、同じdictを(おそらく変更された値で)返す場合、または元のdictを変更して、まったく返さない場合に呼び出すことができます。

于 2011-08-10T14:39:36.243 に答える