Junior — Senior
51
Manual wrapping of a decorator
Компании, где спрашивали:
Trip
Условие задачи
Показать, как вручную обернуть функцию generate_list декоратором time_logger, не используя синтаксис @time_logger, а вызывая декоратор явно.
import time
def time_logger(func):
def wrapped(*args, **kwargs):
t_start = time.time()
result = func(*args, **kwargs)
t_end = time.time()
print(f'func ran in {t_end - t_start}')
return result
return wrapped
def generate_list(count: int) -> list[int]:
return [i for i in range(count)]
# ручное применение декоратора
generate_list = time_logger(generate_list)