Отложенное выполнение функции

Beginner

This tutorial is from open-source community. Access the source code

Введение

В Python иногда необходимо задержать выполнение функции на определенное время. Это может быть полезно в сценариях, когда мы хотим дождаться наступления определенного события перед выполнением функции. В этом испытании вам будет предложено создать функцию, которая задерживает выполнение другой функции на указанное время.

Отложенное выполнение функции

Напишите функцию delay(fn, ms, *args), которая принимает функцию fn, время в миллисекундах ms и любое количество аргументов args. Функция должна задержать выполнение fn на ms миллисекунд, а затем вызвать ее с предоставленными аргументами. Функция должна возвращать результат вызова fn.

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

from time import sleep

def delay(fn, ms, *args):
  sleep(ms / 1000)
  return fn(*args)
delay(lambda x: print(x), 1000, 'later') ## выводит 'later' через одну секунду

Резюме

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