キーが押されるたびに関数を呼び出すキーボード ハンドラーを実装する最も簡単な方法 (これは Linux と Windows の両方で機能します) の 1 つは、BlockingQueue とキーが押されたときにキーをキューに入れるスレッドで、キューはコードの後半でキーを取得します。簡単な実装は次のとおりです:
<code class="python">import queue import sys import threading # blocking q = queue.Queue() last_input = 0.0 def input_thread(q): global last_input while True: ch = sys.stdin.read(1) last_input = time.time() print("got key: '{}'".format(ch)) q.put(ch) if __name__ == '__main__': t = threading.Thread(target=input_thread, args=(q,)) t.daemon = True t.start() last_input_time = last_input while True: if not q.empty() and (time.time() - last_input) < 5: print("polling '{}' in the queue".format(q.get())) if time.time() - last_input_time > 5: print("nothing in the queue for a while") raise RuntimeError("no input")</code>
以上がPython で BlockingQueue を使用してキーボード ハンドラーを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。