Как я могу сделать чувствительный ко времени запрос в python?(Прерывая raw_input) - PullRequest
0 голосов
/ 03 июля 2019

У меня проблемы с созданием приглашения, которое ждет определенного времени только для пользовательского ввода.

Я закончил тем, что использовал поток, чтобы запустить поток, который ожидает ввода, и использовал основной потокпопытаться остановить программу.Многопоточность работает просто отлично, и мой код raw_input, и мой код quit () работают отлично ... пока я не добавлю в микс time.sleep (), чтобы задержать выход из программы.

Похоже,что-то с time.sleep () заставляет его ждать завершения потока;однако я не смог найти альтернативы.Я также не смог найти никаких альтернатив raw_input.

import threading 
import time

def ask():
    print raw_input("What's up?")

def giveUp():
    print "I give up!";
    quit();
    print "I already gave up!";
t1 = threading.Thread(target=ask);
t1.daemon = False;
t1.start()
time.sleep(0.1);
giveUp();

Я ожидаю, что после выхода сообщения "Что случилось" последует немного "Я сдаюсь!"с последующим выходом из программы.

1 Ответ

0 голосов
/ 03 июля 2019

Нет стандартного способа сделать это в Python, но есть несколько потенциальных решений. Один из более чистых способов - зарегистрировать будильник перед вашим звонком на raw_input. Посмотрите на ответ на этот вопрос здесь .

...