Отсрочка функций в python

В JavaScript я привык к возможности вызывать функции, которые будут выполняться позже, например,

function foo() {
    alert('bar');
}

setTimeout(foo, 1000);

Это не блокирует выполнение другого кода.

Я не знаю, как добиться чего-то подобного в Python. Я могу использовать sleep

import time
def foo():
    print('bar')

time.sleep(1)
foo()

, но это заблокирует выполнение другого кода. (На самом деле, в моем случае блокировка Python не была бы проблемой сама по себе, но я не смог бы провести модульное тестирование этого метода.)

Я знаю, что потоки предназначены для несинхронизированного выполнения, но мне было интересно, есть ли что-то проще, аналогично setTimeout или setInterval существует.

10
задан Andrea 3 March 2011 в 06:29
поделиться