Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich ein Zeitlimit für die Funktion „raw_input“ von Python festlegen?

Wie kann ich ein Zeitlimit für die Funktion „raw_input“ von Python festlegen?

DDD
DDDOriginal
2024-11-15 11:57:02256Durchsuche

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

Zeitlimit für raw_input in Python

raw_input ist eine Python-Funktion, die zum Warten auf Benutzereingaben verwendet wird. Es bietet keine Möglichkeit, ein Zeitlimit anzugeben, was in bestimmten Szenarien wünschenswert sein könnte.

Lösung

Um ein Zeitlimit für raw_input festzulegen, gibt es einen Ansatz um die Funktion signal.alarm zu verwenden, die nach Ablauf der angegebenen Zeit ein SIGALRM-Signal an den Prozess sendet. Hier ist ein Codeausschnitt:

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

Dieser Code installiert einen Alarmhandler, der eine KeyboardInterrupt-Ausnahme auslöst, wenn das Zeitlimit erreicht ist, wodurch die raw_input-Funktion effektiv übersprungen wird.

Alternativ für Cross- Plattform- oder Windows-spezifische Lösungen, man kann threading.Timer oder poll msvcrt.kbhit in Windows verwenden, um eine ähnliche Funktionalität zu erreichen.

Das obige ist der detaillierte Inhalt vonWie kann ich ein Zeitlimit für die Funktion „raw_input“ von Python festlegen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn