0

Pythonでループを開始しています。ループを開始した後、ループがループし続けている間(「バックグラウンド」で)、ループの後にコードを実行したいと思います。

x=True

while x:
  #do some output
  sleep(1)

#ask for input or something
if input()=='something':
  x=False

したがって、その例で#do some outputは、入力が要求されている間、が発生し続けます。

これはPythonで可能ですか?これを達成できる回避策はありますか?

4

2 に答える 2

3

私が理解していることから、あなたが望むのは、バックグラウンドでいくつかのタスクを実行し続けるスレッドを作成することです。

http://docs.python.org/library/threading.html

スレッド化はやや複雑な問題であるため、ここでレシピを説明しても大したことはありません。ドキュメントを参照して、何が関係しているかを理解することをお勧めします。

実装に固有の問題がある場合は、質問を更新するか、新しい質問を作成してください。

編集: ティム・ホフマンのコメントに同意します。正しい解決策は、何を達成しようとしているかによって異なります。私の理解では、スレッド化が機能するはずですが、詳細を教えていただけると、より正確な回答が得やすくなる可能性があります。

于 2012-08-01T10:00:10.027 に答える
0

OPの願いに従って、答えを投稿しています。:)あなたがやろうとしていることを達成するための複数のライブラリがあります。最も知られているのは次のとおりです。

両者には微妙な違いがありますが、現時点では気にする必要はないと思います。ただし、マルチプロセッシングとスレッド化全般について詳しく読むことをお勧めします。また、「グリーン」スレッドは興味深い代替手段です。

于 2012-08-01T10:38:30.680 に答える