関数インスタンス自体だけでなく、ジェネレーター関数をインスタンス化する呼び出し元により多くの情報を返すことができる方法はありますか?
例えば、
def genFn(a, b, c):
# some initialisation / pre-computation
startPt = fn(a, b, c)
data = (yield None)
while True:
# perform some computation
data = (yield result)
f = genFn(5, 6, 7)
start = f.get("startPt") # this line syntax is wrong - just to show what I want
f.send(None)
for data in dataseries[startPt:]:
k = f.send(data)
...
渡されたパラメーター(a、b、c)に基づいて、関数には、必要な最も早いデータを計算するロジックがあります。どういうわけか、この情報を「必要な最も古いデータ」から発信者に返すことができるようにしたいと思います。私は確かに呼び出し元に同じ情報を計算して到達させることができますが、それは労力の重複であり、ジェネレーター関数の複雑さをカプセル化したいのでエレガントではありません。
ありがとう
T