Python Hub - сборище Питонистов
1.71K subscribers
657 photos
1 video
37 files
276 links
Уголок счастья для любого питониста.

Сотрудничество или заказы: @leshunist

https://shcoder.dev - студия разработки ShcoderDevelopment

https://t.me/pythonhub_chat - чат
Download Telegram
Библиотека pywebview в Python 🪐


Установка pywebview

Первым шагом к использованию pywebview является его установка. К счастью, это очень просто. Достаточно выполнить следующую команду:

pip install pywebview


Теперь у нас есть все необходимое, чтобы начать работу с pywebview. 📦

Создание простого окна

После установки pywebview, давайте создадим простое окно, которое будет отображать наш веб-контент. Вот базовый пример:

import webview

# Создаем окно с URL
webview.create_window('Пример pywebview', '<https://example.com>')

# Запускаем приложение
webview.start()


Этот код создаст окно с названием "Пример pywebview" и загрузит страницу по указанному URL. Это отличный способ быстро превратить ваше веб-приложение в настольное приложение. 🌐

Больше примеров и документации тут:
https://github.com/r0x0r/pywebview
👍42
Что выдаст код выше?
Anonymous Quiz
47%
True
19%
False
5%
None
7%
Error
18%
123456
4%
Не знаю
👍6
Python Hub - сборище Питонистов
Photo
Разбор 😃

Оператор «is» проверяет идентичность объектов. Таким образом мы сравниваем идентичность переменной c, которая указывает на ячейку памяти и некого текста
👍53
Библиотека python-nubia в Python 📚🐍

Сегодня мы рассмотрим библиотеку python-nubia, которая предназначена для создания командных интерфейсов в Python. Эта библиотека была разработана компанией Facebook и, хотя сейчас она больше не развивается, она все еще заслуживает внимания за свои уникальные возможности и подходы.

Удобство использования 🚀

Одним из ключевых преимуществ python-nubia является её простота и удобство использования. Библиотека позволяет легко создавать командные интерфейсы, используя аннотации и декораторы. Это делает код более читабельным и поддерживаемым. Разработчики могут быстро добавлять новые команды и опции, что значительно ускоряет процесс разработки.

Гибкость и расширяемость 🔧

Python-nubia предоставляет разработчикам высокую степень гибкости и расширяемости. Библиотека поддерживает регистрацию пользовательских команд, создание сложных иерархий команд и даже интеграцию с другими библиотеками. Это делает её отличным выбором для проектов, требующих сложных командных интерфейсов. Несмотря на то, что библиотека больше не развивается, её архитектура и подходы могут быть полезны для изучения и использования в других проектах.

Примеры использования 📋
https://github.com/facebookarchive/python-nubia
👍42
📚 Python-разработчики, сегодня поговорим о мощной библиотеке importlib! 🐍

🔍 Что такое importlib?

Это встроенная библиотека Python, которая предоставляет интерфейс для механизма импорта. С ее помощью вы можете программно импортировать модули, перезагружать их и даже создавать свои собственные импортеры! 🚀

💡 Вот простой пример использования importlib:

import importlib

# Динамический импорт модуля
math = importlib.import_module('math')

# Использование импортированного модуля
print(math.pi) # Выводит 3.141592653589793

# Перезагрузка модуля
importlib.reload(math)


🔧 С importlib вы можете:
• Динамически импортировать модули
• Перезагружать модули во время выполнения
• Создавать пользовательские импортеры
• Работать с пространствами имен пакетов

🏆 Эта библиотека особенно полезна при разработке плагинов, создании расширяемых приложений или отладке кода.

Изучайте, экспериментируйте и становитесь Python-гуру! 🧠💻

https://docs.python.org/3/library/importlib.html
👍31
Было, что быстро печатаете код и вводите буквы в разном порядке?🧐🧐 Думаю, что почти у всех было!😆😆
👍61😁1
Python Hub - сборище Питонистов
Что выдаст код выше? ⬆️
Разбор ⬇️

z = [x, y] создает список z, содержащий два элемента: список x и список y. Таким образом, z — это [[1, 2, 3], [4, 5]]. y.append(6) добавляет элемент 6 в конец списка y. После этой операции y становится [4, 5, 6]. Поскольку z содержит ссылки на x и y, любые изменения, внесенные в x или y, будут отражены в z. Когда y изменяется путем добавления 6, это изменение становится видимым в z, поскольку z содержит ссылку на исходный список y.
Please open Telegram to view this post
VIEW IN TELEGRAM
3
🚀 Привет, коллеги!

Многие из вас знакомы с 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😱21👨‍💻1
Оптимизация производительности с Numba в Python 🐍

🔍 Что такое 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️⃣. Знали, что платный контент нельзя редачить? Знайте!
👍42👎1🥴1
Создание собственных декораторов с functools.wraps на Python 🐍

Что такое декораторы? 🤔

Декораторы в 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