Задания для самостоятельного выполнения
- Сложность:
- Rare
- Решите обе задачи своего варианта.
- Примените декоратор к замыканию.
- Оформите отчёт в
README.md
. Отчёт должен содержать:- Условия задач
- Описание проделанной работы
- Скриншоты результатов
- Ссылки на используемые материалы
- Сложность:
- Medium
- Создайте декоратор с опциональным параметром. Подумайте о поддержке рекурсивных функций.
- Сложность:
- Well-done
- Реализуйте декоратор классов вместо декоратора функций
Варианты заданий
- Замыкание-калькулятор, накапливающее результат и поддерживающее 4 арифметичесике операции:
>>> calc = make_calc("*", initial=1) >>> calc(5) 5 >>> calc(2) 10
- Декоратор, который будет запускать функцию указанное число раз с указанными параметрами и возвращать последвательность результатов.
- Замыкание-калькулятор, накапливающее результат и поддерживающее 4 арифметичесике операции:
- Замыкание для получение текста ответа на запрос к API, например https://dogapi.dog/api/v2/facts.
- Декоратор, ограничивающий частоту вызовов функций.
- Замыкание для получения очередной строки из файла.
- Декоратор, который будет логировать вызовы функций.
- Замыкание, отбирающее только уникальные значения из переданных.
- Декоратор, который будет ограничивать количество вызовов функций.
- Замыкание, определяющее нахождение аргуметов в допустимых диапазонах.
- Декоратор, который будет оборачивать каждую функцию в
try
блок для обработки ошибок.
- Замыкание реализующее последовательность Фибоначчи.
- Декоратор для кэширования результатов выполнения функций.
- Замыкание для отслеживания количества HP героя - HP не может подниматься больше 100 и опускаться ниже 0, герой может лечиться или получать урон.
- Декоратор для подавления вывода функции на консоль.
- Замыкание для поиска среднего в аргументах.
- Декоратор для проверки аргументов функции на тип и диапазон значений.
- Замыкание для записи всех значений в файл.
- Декоратор для асинхронного выполнения функции.
- Замыкание для накопления всех аргументов в коллекции, при получении определённого значения - возврат и очистка коллекции.
- Декоратор для валидации аргументов функции с помощью условий:
@validate(lambda x: x > 0, lambda y: isinstance(y, str)) def my_function(x, y): pass
- Замыкание для получения n байтов из заданного источника.
- Декоратор для отслеживания использования памяти функциями.
- Замыкание для получения простых чисел.
- Декоратор, не позволяющий функции выполняться больше определённого времени.