Sobes.tech
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)