Невозможно проверить функцию slowest_call
с 3 аргументами.
Это одно из моих учебных упражнений.Сначала я определил функцию time_call
, затем я пытаюсь использовать ее как вход для другой функции, slowest_call
.
Возможно, мои входные данные не совсем верны (что я могу указать как 4-й вход?!).Не уверен, что еще попробовать.
from time import sleep
from time import time
t = time()
sleep(duration)
"""Return the amount of time the given function takes (in seconds) when called with the given argument """
def time_call(fn, arg):
t0 = time()
fn(arg)
t1 = time()
elapsed = t1 - t0
return elapsed
time_call(sleep, 4) # testing it, it works
""""Return the amount of time taken by the slowest of the following function
calls: fn(arg1), fn(arg2), fn(arg3) """
def slowest_call(fn, arg1, arg2, arg3):
return max(time_call(fn, arg1), time_call(fn, arg2), time_call(fn, arg3))
Я проверяю это так
slowest_call(time_call(sleep,5), time_call(sleep,3), time_call(sleep,2))
TypeError: slowest_call() missing 1 required positional argument: 'arg3'
Это дает мне ошибку, в то время как это должно генерировать самое длинное время в качестве ответа (5...).