Курс посвящен использованию библиотеки 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
Например,
GET
используется для получения данных, POST
— для создания новых записей, а DELETE
— для удаления.На картинке — 9 самых популярных методов HTTP-запросов, которые стоит держать под рукой каждому разработчику.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍8🤝5🔥2
Почему мой код тупит? Разберём по секундам
Когда проект растёт, даже простые функции могут тормозить.
Вместо гаданий — используем
Профилируем запуск, результат сразу в консоли:
вызовы, время, сортировка — всё по делу:
Хотим больше контроля? Сохраняем отчёт в файл и анализируем его позже:
🔥 Теперь ты сможешь увидеть, где реально тормозит код — никаких догадок, только цифры.
👉 Python Ready | #практика
Когда проект растёт, даже простые функции могут тормозить.
Вместо гаданий — используем
cProfile
. Он покажет, где именно проседает скорость:import cProfile
def main():
[x**2 for x in range(10**6)]
Профилируем запуск, результат сразу в консоли:
вызовы, время, сортировка — всё по делу:
if __name__ == "__main__":
cProfile.run("main()")
Хотим больше контроля? Сохраняем отчёт в файл и анализируем его позже:
import pstats
p = pstats.Stats("output.prof")
p.sort_stats("time").print_stats(5)
🔥 Теперь ты сможешь увидеть, где реально тормозит код — никаких догадок, только цифры.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤25👍15🔥7🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
Вводишь любую команду в терминале, и он по частям объясняет, что делает каждая часть. Не просто man-ка, а понятный синтакс-анализ.
Особенно кайф для тех, кто работает в
Linux/DevOps/CI
среде и хочет разбираться, а не наугад копипастить из StackOverflow
.Please open Telegram to view this post
VIEW IN TELEGRAM
❤25👍12🤝6🔥3
Сегодня разбираем методы поочередного и последовательного соединения итерируемых объектов:
•
zip()
— принимает две или более последовательности и поочередно складывает их элементы в кортежи и возвращает список кортежей•
chain()
— также принимает две коллекции и добавляет сначала элементы первой последовательности, а затем второй и возвращает единый список со всеми элементами переданных массивов🔥 — если узнал что-то новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥48🤝10👍8❤7
Это практический курс по веб-разработке с использованием Flask — одного из самых лёгких и понятных фреймворков на Python. Пошагово разбираются маршруты, шаблоны, подключение БД и запуск на сервере.
Ссылочка на плейлист: YouTube🖤
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16🤝9🔥8