ホームページ  >  記事  >  バックエンド開発  >  Python の「raw_input」関数に時間制限を設定するにはどうすればよいですか?

Python の「raw_input」関数に時間制限を設定するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-15 11:57:02252ブラウズ

How Can I Set a Time Limit on Python's `raw_input` Function?

Python の raw_input の時間制限

raw_input は、ユーザー入力を待機するために使用される Python 関数です。特定のシナリオでは望ましい時間制限を指定する方法は提供されていません。

解決策

raw_input に時間制限を設定するには、1 つの方法があります。 signal.alarm 関数を使用すると、指定された時間が経過した後にプロセスに SIGALRM シグナルが送信されます。コード スニペットは次のとおりです。

import signal

def alarm_handler(signum, frame):
    raise KeyboardInterrupt

def raw_input_with_timeout(prompt, timeout):
    signal.alarm(timeout)
    try:
        return input(prompt)
    except KeyboardInterrupt:
        return None
    finally:
        signal.alarm(0)  # cancel the alarm

このコードは、制限時間に達したときに KeyboardInterrupt 例外を発生させるアラーム ハンドラーをインストールします。これにより、実質的に raw_input 関数がスキップされます。

あるいは、クロスプラットフォームまたは Windows 固有のソリューションでは、Windows で threading.Timer またはポーリング msvcrt.kbhit を使用して、同様の機能を実現できます。

以上がPython の「raw_input」関数に時間制限を設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。