次のような関数内から呼び出される関数があります。
def counter(number):
number = number + 1
return number
def iterator(iteration, function):
for i in range(iteration):
mfunction = function
output = mfunction()
return output
私はそれを次のように呼びたい:
number = 0
number = iterator(5, partial(counter, number))
print number
これは 1 を返しますが、count 関数は 5 回呼び出されているはずなので、5 を返すはずです。
どういうわけかデータが正しく出力されていないことに気付きましたが、for ループから戻る方法がわかりません。
次のようなことは簡単にできるので、この質問は冗長に思えるかもしれません。
for i in range(5):
number = counter(number)
しかし、後者の例は、このプログラムの目的に反しています。
問題は、イテレータ関数を説明するためにカウンター関数に引数を作成する必要があることだと思います。しかし、私の実際のプログラムの問題は、これを行うために多くの関数を変更する必要があることであり、それを回避しようとしています。
私は関数内で関数を呼び出すことに慣れていないので、助けていただければ幸いです。