Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menetapkan Had Masa pada Fungsi `raw_input` Python?

Bagaimanakah Saya Boleh Menetapkan Had Masa pada Fungsi `raw_input` Python?

DDD
DDDasal
2024-11-15 11:57:02355semak imbas

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

Had Masa pada raw_input dalam Python

raw_input ialah fungsi Python yang digunakan untuk menunggu input pengguna. Ia tidak menyediakan cara untuk menentukan had masa, yang mungkin diingini dalam senario tertentu.

Penyelesaian

Untuk menetapkan had masa pada raw_input, satu pendekatan ialah untuk menggunakan fungsi signal.alarm, yang menghantar isyarat SIGALRM kepada proses selepas masa yang ditentukan tamat. Berikut ialah coretan kod:

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

Kod ini memasang pengendali penggera yang menimbulkan pengecualian KeyboardInterrupt apabila had masa dicapai, yang secara berkesan melangkau fungsi raw_input.

Sebagai alternatif, untuk silang- platform atau penyelesaian khusus Windows, seseorang boleh menggunakan threading.Pemasa atau tinjauan pendapat msvcrt.kbhit dalam Windows untuk mencapai kefungsian yang serupa.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menetapkan Had Masa pada Fungsi `raw_input` Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn