Весь мир — декоратор…

Что нужно сделать Реализуйте декоратор для декораторов: он должен декорировать другую функцию, которая должна быть декоратором, и даёт возможность любому декоратору принимать произвольные аргументы. Пример использования: Результат: Что оценивается

Логирование в формате

Что нужно сделать Реализуйте декоратор, который будет логировать все методы декорируемого класса (кроме магических методов) и в который можно передавать формат вывода даты и времени логирования. Пример кода, передаётся формат «Месяц День Год — Часы Минуты Секунды»: Результат: Совет: внимательно пересмотрите видео 29.4, если сталкиваетесь с трудностями при решении этой задачи. Что оценивается

Функция обратного вызова

Что нужно сделать При работе с сетью и веб-сервисами иногда используется функция callback, так называемая функция обратного вызова. Это функция, которая вызывается при срабатывании определённого события (переходе на страницу, получении сообщения или окончании обработки процессором). В неё можно передать функцию, чтобы она выполнилась после определённого события. Это используется, например, в HTTP-серверах в ответ на URL-запросы. Реализуйте такую функцию. Пример функции: Основной код: Ожидаемый результат: Подсказка: функция callback может быть вызвана … Читать далее

Права доступа

Что нужно сделать На вас возложили задачу по созданию и поддержке специализированного сайта-форума. Вы только начали выполнять задачу и сейчас остановились на реализации действий, которые могут совершать посетители форума. И конечно же, для разных пользователей прописаны разные возможности. Напишите декоратор check_permission, который проверяет, есть ли у пользователя доступ к вызываемой функции, и если нет, то выдаёт исключение PermissionError. Пример кода: Результат: Что оценивается

Кэширование запросов

Контекст Вы разрабатываете программу для кэширования запросов к внешнему API. Часто повторяющиеся запросы занимают много времени, поэтому вы решаете создать класс LRU Cache (Least Recently Used Cache), который будет хранить ограниченное количество запросов и автоматически удалять самые старые при достижении лимита. Это позволит значительно ускорить повторяющиеся запросы, так как данные будут браться из кэша, а не отправляться повторно. Задача Советы Не забывайте … Читать далее

Дата

Что нужно сделать Реализуйте класс Date, который должен: Оба метода должны получать на вход строку вида dd-mm-yyyy. При тестировании программы объект класса Date должен инициализироваться исключительно через метод конвертации, например: Неверный вариант: date = Date(10, 12, 2077) Пример основного кода: Результат: Что оценивается

Математический модуль

Что нужно сделать Ирина использует в своей программе очень много различных математических вычислений, связанных с фигурами. Например, нахождение их площадей или периметров. Поэтому, чтобы не захламлять код огромным количеством функций, она решила выделить для них отдельный класс, подключить как модуль и использовать по аналогии с модулем math. Реализуйте класс MyMath, состоящий как минимум из следующих методов (можете бонусом добавить и другие методы): Пример основного кода: Результат: … Читать далее

Кэширование для ускорения вычислений

Контекст Вы разрабатываете программу для оптимизации вычислений чисел Фибоначчи. Числа Фибоначчи вычисляются рекурсивной функцией, каждое число равно сумме двух предыдущих чисел. Однако вы заметили, что при больших значениях чисел Фибоначчи вычисления занимают значительное время, так как многие значения вычисляются повторно. Вам поручено создать декоратор, который кэширует результаты вызова функции и позволяет избежать повторных вычислений для одних и тех же аргументов. Задача Создайте … Читать далее

Счётчик

Что нужно сделать Реализуйте декоратор counter, считающий и выводящий количество вызовов декорируемой функции. Для решения задачи нельзя использовать операторы global и nonlocal (об этом мы ещё расскажем). Что оценивается