関数を一度呼び出すことができ、別の時間に複数回データを返す方法はありますか?例えばPython:関数呼び出し中に一度データを返す方法
、私は次のコードを持っていたとします
def do_something():
for i in range(1, 10):
return 1
は、しかし、私は1つの関数呼び出しからのデータの複数部分を返すことができるようにしたいが、非同期の回で、これが可能であるが?コンテキストの場合
、私はワード文書を生成するプログラムを持って、PDFファイルに変換し、その後、単一のPDFドキュメントにそれらを兼ね備えています。 GUIから外部関数を呼び出してドキュメントを作成し、その関数を使って現在の進行状況を表示するプログレスバーを表示したいと考えています。
編集:
私はすでにyield
機能を認識しています。質問の一番下にある私の具体的な問題が助けになると思った。私が探しているのは、関数から複数の値を返し、返される値ごとに異なるイベントを発生させる方法です。それが悪い例かもしれないが、私がしたいことはやることができるようにすることですあなたが発電をしたい
はい、何かがまさにそのためにありません: 'yield' http://stackoverflow.com/questions/231767/what-does-the-yield-keyword-do – Iluvatar
んが' yield'あなたが呼び出す必要があります何回も何回も。彼はそれをシングルタイムと呼んでほしい。 – harshil9968
@ harshil9968ジェネレータは一度呼び出す必要があります。イテレータを格納してから、**イテレータ**を何度も呼び出す必要があります。これは、forループの意味がするものです。関数を繰り返し呼び出すと、イテレータは状態を失い、最初から開始します。 – bashrc