🚀 Привет, коллеги!
Многие из вас знакомы с Habr. Кто-то уже делился там своими статьями, а кто-то, возможно, столкнулся с модерацией или другими сложностями.
Мы с командой начали новый проект — DevGurt — площадку для общения и публикации статей для всех, кто так или иначе связан с Dev-IT индустрией. Проект сейчас находится на стадии MVP (минимально жизнеспособный продукт), но мы активно работаем над его развитием и расширением.
(☺️https://devgurt.com/☺️)
Чем вы можете помочь? Мы ждем вашей поддержки, советов и, конечно, обратной связи! Регистрируйтесь, публикуйте статьи, делитесь мнениями. Нам важно знать, что вы думаете!
(Форма обратной связи - https://forms.gle/hra11i99sDsh31XG7)
💡 В планах — подключение монетизации, чтобы авторы могли получать вознаграждения за свой труд.
Присоединяйтесь и давайте вместе создадим что-то крутое!
https://devgurt.com/
p.s. Небольшая статья о том, как пользоваться платформой
https://devgurt.com/offtop/16-cto-takoe-devgurt-i-kak-im-polzovatsya
Многие из вас знакомы с Habr. Кто-то уже делился там своими статьями, а кто-то, возможно, столкнулся с модерацией или другими сложностями.
Мы с командой начали новый проект — DevGurt — площадку для общения и публикации статей для всех, кто так или иначе связан с Dev-IT индустрией. Проект сейчас находится на стадии MVP (минимально жизнеспособный продукт), но мы активно работаем над его развитием и расширением.
(☺️https://devgurt.com/☺️)
Чем вы можете помочь? Мы ждем вашей поддержки, советов и, конечно, обратной связи! Регистрируйтесь, публикуйте статьи, делитесь мнениями. Нам важно знать, что вы думаете!
(Форма обратной связи - https://forms.gle/hra11i99sDsh31XG7)
💡 В планах — подключение монетизации, чтобы авторы могли получать вознаграждения за свой труд.
Присоединяйтесь и давайте вместе создадим что-то крутое!
https://devgurt.com/
p.s. Небольшая статья о том, как пользоваться платформой
https://devgurt.com/offtop/16-cto-takoe-devgurt-i-kak-im-polzovatsya
❤🔥2👍2😱2❤1👨💻1
Оптимизация производительности с Numba в Python 🐍
🔍 Что такое Numba?
Numba - это JIT-компилятор (Just-In-Time), который преобразует Python и NumPy код в быстрый машинный код. Это позволяет значительно ускорить выполнение вычислительно-интенсивных задач. 🧠⚡️
💡 Как использовать Numba?
Использовать Numba очень просто! Вот пример:
🔬 Что происходит?
1️⃣ Мы импортируем декоратор @jit из Numba
2️⃣ Применяем декоратор к нашей функции
3️⃣ Numba компилирует функцию при первом вызове
4️⃣ Последующие вызовы используют скомпилированную версию 🚀
📊 Результаты
На больших массивах Numba может ускорить код в десятки раз! Например, для массива из миллиона элементов:
- Обычный Python: ~1 секунда ⏱
- С Numba: ~0.01 секунды ⚡️
🎯 Советы по использованию
- Используйте режим nopython=True для максимальной производительности
- Numba лучше всего работает с числовыми типами данных и NumPy массивами
- Избегайте использования Python-объектов внутри jit-функций
🔍 Что такое Numba?
Numba - это JIT-компилятор (Just-In-Time), который преобразует Python и NumPy код в быстрый машинный код. Это позволяет значительно ускорить выполнение вычислительно-интенсивных задач. 🧠⚡️
💡 Как использовать Numba?
Использовать Numba очень просто! Вот пример:
from numba import jit
import numpy as np
@jit(nopython=True)
def sum_of_squares(arr):
sum = 0
for i in range(arr.shape[0]):
sum += arr[i]**2
return sum
# Пример использования
arr = np.arange(1000000)
result = sum_of_squares(arr)
print(f"Сумма квадратов: {result}")
🔬 Что происходит?
1️⃣ Мы импортируем декоратор @jit из Numba
2️⃣ Применяем декоратор к нашей функции
3️⃣ Numba компилирует функцию при первом вызове
4️⃣ Последующие вызовы используют скомпилированную версию 🚀
📊 Результаты
На больших массивах Numba может ускорить код в десятки раз! Например, для массива из миллиона элементов:
- Обычный Python: ~1 секунда ⏱
- С Numba: ~0.01 секунды ⚡️
🎯 Советы по использованию
- Используйте режим nopython=True для максимальной производительности
- Numba лучше всего работает с числовыми типами данных и NumPy массивами
- Избегайте использования Python-объектов внутри jit-функций
👍4
This media is not supported in the widget
VIEW IN TELEGRAM
👎7🗿5
Python Hub - сборище Питонистов
Купите возможность посмотреть на черный квадрат😏 p.s. хочу посмотреть на то, как работают TG STARS
1️⃣. Привычно ли смотреть на текст НАД картинкой?🧐
2️⃣. Стоит ли применять такую логику в постах?
3️⃣. За что вы начали ставить дизлайки?🫣😔
4️⃣. Знали, что платный контент нельзя редачить? Знайте!
2️⃣. Стоит ли применять такую логику в постах?
3️⃣. За что вы начали ставить дизлайки?🫣😔
4️⃣. Знали, что платный контент нельзя редачить? Знайте!
👍4❤2👎1🥴1
Создание собственных декораторов с functools.wraps на Python 🐍✨
Что такое декораторы? 🤔
Декораторы в Python - это мощный инструмент для изменения поведения функций или классов без изменения их исходного кода. Они позволяют "обернуть" существующую функцию дополнительной функциональностью.
Зачем нужен functools.wraps? 🎁
При создании декораторов возникает проблема: метаданные декорируемой функции (такие как имя и документация) теряются. Здесь на помощь приходит functools.wraps!
Пример декоратора без functools.wraps 😕
Пример с использованием functools.wraps 🌟
Преимущества использования functools.wraps 🏆
1. Сохранение метаданных функции
2. Улучшение отладки и документирования
3. Совместимость с инструментами анализа кода
Что такое декораторы? 🤔
Декораторы в Python - это мощный инструмент для изменения поведения функций или классов без изменения их исходного кода. Они позволяют "обернуть" существующую функцию дополнительной функциональностью.
Зачем нужен functools.wraps? 🎁
При создании декораторов возникает проблема: метаданные декорируемой функции (такие как имя и документация) теряются. Здесь на помощь приходит functools.wraps!
Пример декоратора без functools.wraps 😕
def my_decorator(func):
def wrapper(*args, **kwargs):
print("До выполнения функции")
result = func(*args, **kwargs)
print("После выполнения функции")
return result
return wrapper
@my_decorator
def greet(name):
"""Эта функция приветствует пользователя"""
print(f"Привет, {name}!")
print(greet.__name__) # Выводит: wrapper
print(greet.__doc__) # Выводит: None
Пример с использованием functools.wraps 🌟
from functools import wraps
def my_decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
print("До выполнения функции")
result = func(*args, **kwargs)
print("После выполнения функции")
return result
return wrapper
@my_decorator
def greet(name):
"""Эта функция приветствует пользователя"""
print(f"Привет, {name}!")
print(greet.__name__) # Выводит: greet
print(greet.__doc__) # Выводит: Эта функция приветствует пользователя
Преимущества использования functools.wraps 🏆
1. Сохранение метаданных функции
2. Улучшение отладки и документирования
3. Совместимость с инструментами анализа кода
👍1🤯1
Dask - это гибкая библиотека для параллельных вычислений в Python. Она позволяет обрабатывать большие объемы данных, распределяя нагрузку на несколько ядер процессора или даже на кластер компьютеров. 💻➡️💻➡️💻
- Масштабируемость: от ноутбука до кластера 📈
- Совместимость с экосистемой Python (NumPy, Pandas) 🐍
- Ленивые вычисления для оптимизации 🦥
import dask.array as da
# Создаем большой массив
x = da.random.random((10000, 10000), chunks=(1000, 1000))
# Выполняем операции
result = (x + 1).mean().compute()
print(f"Среднее значение: {result}")
import dask.dataframe as dd
# Читаем большой CSV файл
df = dd.read_csv('huge_file.csv')
# Выполняем группировку и агрегацию
result = df.groupby('category').agg({'value': 'mean'}).compute()
print(result)
from dask import delayed
@delayed
def process_data(x):
# Здесь может быть сложная обработка
return x * 2
data = [1, 2, 3, 4, 5]
results = [process_data(x) for x in data]
final_result = delayed(sum)(results).compute()
print(f"Итоговый результат: {final_result}")
Dask - это мощный инструмент для параллельной обработки данных в Python. Он позволяет легко масштабировать ваши вычисления и работать с большими объемами данных эффективно. Начните использовать Dask сегодня и ощутите разницу в скорости обработки ваших данных! 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Теперь вы можете писать и публиковать свои статьи на различные IT-темы на нашем сайте — devgurt.com
Статьи будут попадать в нашу группу с указанием автора, если вы пожелаете!
А ещё, мы запустили второй телеграм-канал — @devgurt 🚀.
Там будут появляться статьи не только по Python, но и по программированию и технологиям в целом. Присоединяйтесь и будьте в курсе всех новинок!
Подписывайтесь и делитесь своими знаниями с сообществом!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Модуль weakref предоставляет инструменты для создания слабых ссылок на объекты. 🛠
Слабые ссылки позволяют ссылаться на объект без увеличения его счетчика ссылок. Это означает, что объект может быть удален сборщиком мусора, даже если на него есть слабая ссылка. 🗑
import weakref
class MyClass:
pass
obj = MyClass()
weak_ref = weakref.ref(obj)
print(weak_ref()) # Выводит объект MyClass
del obj
print(weak_ref()) # Выводит None
Использование модуля weakref позволяет разработчикам Python лучше контролировать управление памятью в своих программах. Это особенно полезно при работе с большими объемами данных или в системах с ограниченными ресурсами.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2
Legacy код, или унаследованный код, - это существующая кодовая база, которая продолжает использоваться, несмотря на то, что она может быть устаревшей, плохо структурированной или трудной для поддержки. 🏛
- Устаревшие технологии или методологии 🕰
- Отсутствие или недостаточность документации 📄
- Сложность в поддержке и расширении 🔧
- Высокая связность и низкая сплоченность 🔗
# Legacy код на Python
def calculate_total(items):
total = 0
for item in items:
total = total + item['price'] * item['quantity']
return total
# Современный эквивалент
def calculate_total(items):
return sum(item['price'] * item['quantity'] for item in items)
😄 C++ 🔨 и Java ☕️ коды доступны в нашем телеграм канале, посвященному разработке не только на Python
- Сложность внесения изменений и добавления новых функций 🔒
- Повышенный риск появления ошибок при модификации 🐛
- Трудности в интеграции с современными технологиями 🔌
- Зависимость от устаревших библиотек и фреймворков 📚
- Постепенный рефакторинг 🔄
- Написание тестов для существующего кода 🧪
- Документирование существующей функциональности 📝
- Модульная замена частей системы
Работа с Legacy кодом - это неизбежная часть жизни многих разработчиков. Хотя он может представлять сложности, правильный подход к его обработке может значительно улучшить качество и поддерживаемость программного обеспечения. 🌟
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
TELEGRAM БОТ С ОПЛАТОЙ ЮКАССА на PYTHON | Подключить ЮMoney платежи AIOgram
В этом видео мы посмотрим, как к телеграм боту, написанному на пайтон подключается онлайн оплата и платежи через ЮKassa (юмани, юкасса, yookassa). Использовать будем библиотеку Aiogram.
🔥 Подписывайся на наш Телеграм-канал про Python 🔥
🖇 https://t.me/pythonhub001…
🔥 Подписывайся на наш Телеграм-канал про Python 🔥
🖇 https://t.me/pythonhub001…
❤🔥3👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁17👍2
Python Hub - сборище Питонистов
Photo
Разбор 👨💻
Большинство людей попалось на уловке с 27/3. Дело в том, что деление в Python всегда выдает дробное число. То бишь 27/3 —> 9.0. Если вы хотите получить целое, то используйте // (целочисленное деление)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
FastStream - это мощная библиотека для Python, которая упрощает создание и управление потоковыми приложениями. Она предоставляет удобный интерфейс для работы с различными брокерами сообщений, такими как Kafka и RabbitMQ. 🐰🐘
- 🔧 Простота использования
- 🚀 Высокая производительность
- 🔄 Поддержка асинхронного программирования
- 🔌 Легкая интеграция с существующими проектами
Для начала работы с FastStream, установите библиотеку с помощью pip:
pip install faststream
## Пример использования FastStream с Kafka 🚀
Давайте рассмотрим простой пример использования FastStream с Kafka:
from faststream import FastStream, Logger
from faststream.kafka import KafkaBroker
# Создаем брокер Kafka
broker = KafkaBroker("localhost:9092")
# Инициализируем FastStream
app = FastStream(broker)
# Определяем обработчик сообщений
@broker.subscriber("input-topic")
async def process_message(msg: str, logger: Logger):
logger.info(f"Получено сообщение: {msg}")
# Обработка сообщения
processed_msg = msg.upper()
# Отправка обработанного сообщения
await broker.publish(processed_msg, "output-topic")
# Запускаем приложение
if __name__ == "__main__":
app.run()
В этом примере мы:
1. Импортируем необходимые модули из FastStream.
2. Создаем брокер Kafka, указывая адрес сервера.
3. Инициализируем FastStream с нашим брокером.
4. Определяем функцию-обработчик сообщений с декоратором @broker.subscriber.
5. В обработчике мы логируем полученное сообщение, преобразуем его в верхний регистр и отправляем в другую тему.
6. Запускаем приложение с помощью app.run().
смотреть больше примеров можно тут в статье
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2
Python и все, что с ним связано и для него нужно держится в топ 10 всех трех списков🤘🏻
Что думаете на данный счет?🤨
Больше статистик в этом посте.
Что думаете на данный счет?
Больше статистик в этом посте.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Топ 3 расширения для VSCode 👩💻
➡️ autoDocstring
Быстро генерирует докстринги по шаблону. Удобно когда пишешь либы. Скачать можно тут
➡️ Auto-Collapse Folders
Сворачивает все лишние папки, оставляет открытой только ту, в которой ты находишься.
Скачать можно тут
➡️ Code Spell Checker
Проверяет написания всех слов, исправляет опечатки. Скачивай тут. Чтобы был русский язык качай еще это
Ставьте 👍 и заходите в наш чатик )
Быстро генерирует докстринги по шаблону. Удобно когда пишешь либы. Скачать можно тут
Сворачивает все лишние папки, оставляет открытой только ту, в которой ты находишься.
Скачать можно тут
Проверяет написания всех слов, исправляет опечатки. Скачивай тут. Чтобы был русский язык качай еще это
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Представьте, что вы супергерой, способный делать несколько дел одновременно. Это и есть concurrent.futures! 🦸♂️ Этот мощный модуль в Python позволяет вам выполнять задачи параллельно, экономя драгоценное время и ресурсы.
🛠 Основные инструменты
В нашем арсенале два главных оружия:
- 🧵 ThreadPoolExecutor - для задач, связанных с вводом-выводом
- 🖥 ProcessPoolExecutor - для вычислительно-интенсивных задач
Вот простой пример использования ThreadPoolExecutor:
import concurrent.futures
import time
def task(name):
print(f"Задача {name} начата")
time.sleep(2)
return f"Задача {name} завершена"
with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
tasks = [executor.submit(task, f"#{i}") for i in range(5)]
for future in concurrent.futures.as_completed(tasks):
print(future.result())
🎉 Вуаля! Мы только что создали многопоточное приложение, которое выполняет 5 задач параллельно, используя пул из 3 потоков.
- ⚡️ Повышение производительности
- 🧩 Простота использования
- 🔄 Автоматическое управление потоками
- 🎛 Гибкость в настройке
Поздравляем! Теперь вы знаете, как создавать многопоточные приложения с помощью concurrent.futures. Это мощный инструмент, который поможет вам писать более эффективный и быстрый код. Не забывайте практиковаться и экспериментировать - ведь в мире многопоточности возможности безграничны! 🌈
Удачи в ваших кодерских приключениях! 💻✨
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1