Сегодня создадим универсальный декоратор, который сохраняет результат функции и повторно его возвращает, если с момента вызова прошло меньше заданного времени.
В этой задаче:
• Пишем параметризованный декоратор с TTL.
• Сохраняем результаты и метки времени в словарях.
• Проверяем срок жизни кеша перед повторным вызовом.
• Обновляем кеш автоматически по истечении времени.
🔥 — если попробуешь применить
🤝 — если уже писал подобное
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20🔥20👍6🤝2
Курс посвящен использованию библиотеки OpenCV для обработки изображений и видео с помощью Python. Вы узнаете, как применять нейронные сети для распознавания объектов и других задач компьютерного зрения.
Ссылочка на плейлист: YouTube🖤
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥8🤝6❤2
Логируем функции с помощью паттерна "Декоратор"
Паттерн "Декоратор" — отличный способ добавить функциональность в функцию без изменения её кода. Сегодня научимся создавать декоратор для логирования вызова функций.
Для начала импортируем модуль
Создадим сам декоратор
Теперь применим наш декоратор к простой функции, например, которая складывает два числа:
Проверим вызов:
Результат:
🔥 Такой подход поможет тебе быстро добавлять логирование в любые функции — удобно для отладки и мониторинга.
👉 Python Ready | #практика
Паттерн "Декоратор" — отличный способ добавить функциональность в функцию без изменения её кода. Сегодня научимся создавать декоратор для логирования вызова функций.
Для начала импортируем модуль
functools
— он поможет сохранить информацию о декорируемой функции:import functools
Создадим сам декоратор
log_call
. Он будет оборачивать функцию и печатать её имя при вызове:def log_call(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
print(f"Вызов функции: {func.__name__}")
return func(*args, **kwargs)
return wrapper
Теперь применим наш декоратор к простой функции, например, которая складывает два числа:
@log_call
def add(a, b):
return a + b
Проверим вызов:
result = add(3, 4)
print(f"Результат: {result}")
Результат:
Вызов функции: add
Результат: 7
🔥 Такой подход поможет тебе быстро добавлять логирование в любые функции — удобно для отладки и мониторинга.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30❤8👍7🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
Всё по темам: от базового синтаксиса до ООП. Хорошо структурировано, всегда можно открыть нужную главу и быстро вспомнить ключевые моменты. Особенно удобно для повторения.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍12🤝5
Многие используют
with open(...)
, но не многие пишет свои контекстные менеджеры. А ведь это мощный инструмент для управления ресурсами, логирования, временных настроек и откатов.В этом посте:
• Покажем, как создать классический менеджер с enter и exit.
• Разберем декоратор contextmanager из contextlib.
• Напишем менеджер, который временно меняет рабочую директорию и возвращает всё обратно.
🔥 — если узнал что-то новое
🤝 — если уже писал кастомные менеджеры
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32❤9👍7🤝2
В этой статье:
• Пошаговое создание бота с пояснениями и примерами;
• Сравнение популярных библиотек — плюсы, минусы и советы по выбору;
• Полезные грабли и лайфхаки из реального опыта автора.
🔊 Продолжай читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤13🔥10🤝1
Шпаргалка по ключевым декораторам и функциям модуля dataclasses, который упрощает создание классов с данными. Удобный способ автоматически генерировать методы, преобразовывать объекты в словари или кортежи, а также делать экземпляры неизменяемыми.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍12❤8😁1🤝1