feat: implement legacy shop management system and add task documentation files
CI Check / lint-and-check (push) Failing after 9s
CI Check / lint-and-check (push) Failing after 9s
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
### Задача 6. Декораторы и время выполнения (Декораторы, Функции высшего порядка)
|
||||
|
||||
Напишите программу с декораторами для измерения производительности:
|
||||
|
||||
1. `timer(func)` — декоратор, который измеряет время выполнения функции. Выводит: *"Функция {название} выполнилась за {время} секунд"*. Используйте `time.time()`.
|
||||
|
||||
2. `repeat(n)` — декоратор с параметром, который запускает функцию `n` раз подряд и возвращает список результатов.
|
||||
|
||||
3. `cache_result(func)` — декоратор, который кэширует результат функции. Если функция вызывается с теми же аргументами, возвращает закэшированный результат, не выполняя функцию повторно. Используйте словарь для хранения кэша.
|
||||
|
||||
**Тесты:**
|
||||
|
||||
1. Создайте функцию `slow_calculation(x)`, которая делает `time.sleep(1)` и возвращает `x * 2`
|
||||
2. Примените к ней декоратор `@timer`
|
||||
3. Создайте функцию `fibonacci(n)` (рекурсивная) и примените `@cache_result`
|
||||
4. Вызовите `fibonacci(35)` дважды и убедитесь, что второй раз выполняется мгновенно
|
||||
5. Создайте функцию с декоратором `@repeat(3)` и проверьте, что она выполнилась 3 раза
|
||||
Reference in New Issue
Block a user