2つのリストを取る関数があります。今私が持っているのは、関数がリストからすべてのパラメーターを取得し、それらを新しい行に出力するということです。問題は、関数自体を変更できないことですが、代わりに、関数のラッパーまたはループを作成して、必要な処理を実行する必要があります。
Name = ['one', 'two', 'three']
size = [1, 2, 3]
def createSomething(Name, size = None):
if size:
something = loudEchoCmd("something create --size %s --name %s " % ((',')join(size), (',')join(Name)))
else:
something = loudEchoCmd("something create --name %s " % (',')join(Name))
return something
これを実行すると、次のようになります。
Example:
something create --size 1, 2, 3 --name one, two, three
これは私が取得したいものです:
Example:
something create --size 1 --name one
something create --size 2 --name two
something create --size 3 --name three
そのため、必要な処理を実行する関数のラッパーを作成する必要があります。私はこれを行う方法がわかりません。これは、関数を変更するだけで実行できる方法です。
def createSomething(Name, size = None):
if size:
for(i, (x1, x2)) in enumerate(zip(size,Name)):
loudEchoCMD("something create --size {0} --name {1}")
else:
for x in Name:
loudEchoCMD("something create --name {0}".format(x))
しかし、関数を変更せずにそれを行う方法はわかりません:(