Подтвердить что ты не робот

Задержки времени Python

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

4b9b3361

Ответ 1

Посмотрите threading.Timer. Он запускает вашу функцию в новом потоке.

from threading import Timer

def hello():
    print "hello, world"

t = Timer(30.0, hello)
t.start() # after 30 seconds, "hello, world" will be printed

Ответ 2

Если вы хотите, чтобы функция вызывалась через некоторое время и не останавливала ваш script, вы по сути дела имеете дело с потоковым кодом. Если вы хотите установить вызываемую функцию и не беспокоиться об этом, вам нужно либо явно использовать многопоточность - например, em Mark Byers answr, либо использовать структуру кодирования, в которой есть основной цикл, который выполняет функцию диспетчеризации для вы - как скрученные, qt, gtk, pyglet и многие другие. Любой из них потребует, чтобы вы переписали свой код, чтобы он работал из основного цикла структуры.

Это либо это, либо запись какого-либо основного цикла из события, проверяющего себя на вашем коде - В общем, если единственное, что вы хотите, это вызовы с одной функцией, threading.Timer - это способ сделать это. Если вы хотите использовать эти временные вызовы для фактической петли программы, как это обычно делается с помощью javascript setTimeout, вам лучше выбрать одну из фреймворков кодирования, перечисленных выше, и рефакторинг кода, чтобы воспользоваться им.

Ответ 3

просто сделайте time.sleep (количество) или pygame.time()

Ответ 4

import threading

def time_demo():
  threading.Timer(5.0, time_demo()).start()

print 'Hello this is time demo function'
time_demo()