Как сделать синхронизированный вход, который запускает другие «события»? - PullRequest
1 голос
/ 25 сентября 2019

Во-первых, знайте, что я относительно новичок в питоне.Я пытаюсь сделать программу, которая в определенное время (5 секунд) запрашивает определенный ввод.Если программа не получает ввод в течение 5 секунд, отмените ввод и запустите печать.Если это будет сделано через 5 секунд, запустите еще одну печать.

Я пытаюсь отредактировать этот код в соответствии с моей программой.Помогите, пожалуйста.

import time
import threading
import os
import signal

class FiveSec(threading.Thread):
    def restart(self):
        self.my_timer = time.time() + 5
    def run(self, *args):
        self.restart()
        while 1:
            time.sleep(0.1)
            if time.time() >= self.my_timer:
                break
        os.kill(os.getpid(), signal.SIGINT)


def main():
    try:
        t = FiveSec()
        t.daemon = True
        t.start()
        while 1:
            x = input('::> ')
            t.restart()
            print('\nYou entered %r\n' % x)
    except KeyboardInterrupt:
        print("\nDone!")

if __name__ == '__main__':
    main()

Эта программа, однако, просто убивает себя после того, как не получила ввод, и продолжает цикл, который я понятия не имею, чтобы сломать.

...