Telegram Web Link
🗳 Глобальные переменные, инкапсуляция и области видимости в Python

В Python область видимости (scope) определяет, где переменная видна и как долго живёт.

Основные области видимости:
📝 Локальная — внутри функции
📝 Глобальная — на уровне модуля
📝 Классовая/экземплярная — внутри класса (атрибуты класса и объекта)

🔎 Почему локальные переменные работают быстрее глобальных

Python ищет переменную по правилу LEGB: Local → Enclosing → Global → Built-in

Поиск начинается с самой узкой области — локальной, где переменных меньше, и поиск происходит быстрее.

Пример на замере времени:
import time

def local_test():
a = 0
for _ in range(1000000):
a += 1

b = 0
def global_test():
global b
for _ in range(1000000):
b += 1

start = time.time()
local_test()
print(f"Локальные переменные: {time.time() - start:.4f} сек")

start = time.time()
global_test()
print(f"Глобальные переменные: {time.time() - start:.4f} сек")


Локальные переменные: 0.5668 сек
Глобальные переменные: 1.1951 сек


Результат: локальные переменные работают заметно быстрее.

🔎 Важно вспомнить об инкапсуляции — ключевом инструменте организации и оптимизации кода

Инкапсуляция
:
📝 Локализует переменные внутри классов и функций
📝 Уменьшает количество отслеживаемых интерпретатором переменных
📝 Предотвращает конфликты имён и защищает данные
📝 Позволяет контролировать доступ к атрибутам через методы (getter/setter)

Пример сравнения класса с инкапсуляцией и без:
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height

class EncapsulatedRectangle:
def __init__(self, width, height):
self._width = width
self._height = height
def get_width(self):
return self._width
def set_width(self, width):
self._width = width
def area(self):
return self._width * self._height


В реальных приложениях инкапсуляция помогает писать более надежный и поддерживаемый код.


🔎 Ключевые преимущества инкапсуляции и локальных переменных:

📝Снижение нагрузки на интерпретатор — быстрее выполняется код
📝 Улучшение управления памятью — локальные переменные освобождаются после выхода из функции
📝 Защита данных и уменьшение числа ошибок

🔎 Вывод

Для повышения производительности и удобства поддержки используйте локальные переменные и инкапсуляцию. Это простой, но мощный способ оптимизации вашего кода.

Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍107🔥1😁1
Команда дня: отказ от Docker в пользу Python wheel-файлов для запуска проектов

В некоторых задачах требуется запускать Python-проекты без Docker-образов, чтобы напрямую обращаться к машине и драйверам GPU без дополнительных абстракций.

В таком случае удобным решением становятся runnable-файлы — Python wheel, которые можно собрать с помощью Poetry и использовать в CI/CD.

Основные этапы настройки:

1️⃣ В файле pyproject.toml настроить включение необходимых пакетов при сборке wheel:
[tool.poetry]
packages = [
{ include = "main_dir" },
]


2️⃣ Создать в GCP Artifact Registry приватный репозиторий для хранения wheel-файлов.

3️⃣ В poetry.toml указать репозиторий для публикации:
[repositories.my-registry]
url = "https://europe-west1-python.pkg.dev/my-project/my-registry/"


4️⃣ Для публикации wheel-файла выполнить:
rm -fr dist/  # Удаление старых сборок для предотвращения конфликтов
sed -I.back 's/^version = "[^"]*"/version = "1.0.post'"$(date +%Y%m%d%H%M)"'"/' pyproject.toml # Динамическое обновление версии
poetry publish --build --repository my-registry


5️⃣ Настроить VM для доступа к Artifact Registry с помощью команды:
gcloud artifacts print-settings python --project=my-gcp-project --repository=my-registry --location=europe-west1


6️⃣ Установить wheel на VM и запустить приложение:
pip install my-project
python -m my_job # Запуск проекта


Преимущества такого подхода:
♋️ Отсутствие зависимости от Docker
♋️ Возможность прямого взаимодействия с железом и драйверами GPU
♋️ Легкость обновления через CI/CD
♋️ Минимальная прослойка между приложением и системой

Использование wheel-файлов — отличная альтернатива Docker для Python-проектов в задачах, где нужна высокая производительность и прямой доступ к системе.

Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍4🔥2🤔2
🔥 Последняя неделя перед стартом курса по AI-агентам

Старт курса уже 5го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место

На курсе:
разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах

📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями

И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»

👉 Курс здесь
👍21😁1🤔1
🫣

Библиотека питониста #развлекалово
😁33💯2
👌 Что умеют множества (set) в Python

1️⃣ Множество ≠ список

fruits = {"apples", "strawberries", "pears", "apples"}
print(fruits) # {'apples', 'pears', 'strawberries'}


🔢 Нет дубликатов.
🔢 Порядок не гарантирован.
🔢 Быстро добавлять / удалять / проверять наличие элемента.

2️⃣ «Словарь без значений»

Вместо словаря вида
colors = {"red": None, "green": None, "blue": None}


используйте множество:
colors = {"red", "green", "blue"}


Дубликаты исчезнут, а кода станет меньше.

3️⃣ Молниеносная проверка «есть ли элемент»

numbers = [int(n) for n in open("numbers.txt")]
numbers_set = set(numbers) # создание множества

no_neighbors = [
n for n in numbers
if n-1 not in numbers_set and n+1 not in numbers_set
]


Преобразование списка в set резко ускорит поиск (O(1) вместо O(n)).

4️⃣ Сет‑арифметика одним символом

a = {1, 2, 3, 4}
b = {3, 4, 5, 6}

a | b # объединение → {1, 2, 3, 4, 5, 6}
a & b # пересечение → {3, 4}
a - b # только в a → {1, 2}
a ^ b # в одном, но не в двух → {1, 2, 5, 6}


Когда нужно узнать общие или уникальные элементы двух коллекций — множества решают задачу одной строкой.

5️⃣ Конвертируем «на ходу»

Нужно сохранить порядок, но иногда делать быстрые проверки?
words = open("words.txt").read().split()
word_set = set(words)

anadromes = [w for w in words if w[::-1] in word_set]


Создаём set ради быстрых проверок, но сами данные храним в списке.

6️⃣ Мгновенная проверка дубликатов

nums = [1, 2, 3, 2]
has_dupes = len(nums) != len(set(nums)) # True


Одна строка — и вы знаете, есть ли повторения.

Когда выбирать set
:
1. Убрать дубликаты, если порядок не важен.
2. Быстро проверить «есть ли элемент».
3. Сравнить коллекции с помощью | & - ^.
4. Проверить уникальность элементов списка.

Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍6❤‍🔥1😁1🤔1
🤔 Вопрос подписчика: где сейчас хостят Python веб-приложения

«У меня небольшой проект на FastAPI. Раньше разворачивал Ruby-приложения на EC2, Heroku, VPS. А что сейчас модно/удобно для Python?»


🔍 Куда хостить FastAPI / Python веб-приложения в 2025

1️⃣ Render / Railway / Fly.io

— Быстрый деплой, минимальный DevOps
— Поддержка Python из коробки
— Платформа берёт на себя сетку, сертификаты, CI/CD
— Хорошо для MVP, pet-проектов и стартапов

2️⃣ Docker + VPS (Hetzner, DigitalOcean, Contabo)

— Полный контроль над окружением
— Подходит для продакшна, если вы не боитесь DevOps
— Можно легко масштабировать вручную
— Дешевле в долгосрочной перспективе, но требует рук

3️⃣ Serverless (AWS Lambda + API Gateway, Vercel Edge Functions)

— Хорошо, если нужны функции «по вызову»
— Сложно, если у вас нестандартные зависимости или heavy backend
— Не для всех библиотек (например, сложно с pydantic, numpy, и heavy ML)

4️⃣ Cloud Platform-as-a-Service (Google Cloud Run, AWS App Runner, Azure App Service)

— Почти как Heroku, но от облачного провайдера
— Баланс между простотой и гибкостью
— Можно автошкалировать, легко подключить storage / мониторинг

5️⃣ Bonus: Hugging Face Spaces / Gradio / Streamlit Cloud

— Идеально для демо ML-моделей
— Не для продакшна, но отлично для презентаций и ссылок на GitHub

💬 А вы где хостите свои Python проекты?
Есть ли любимый стек или платформа, которая «просто работает»?


Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥1
🧠 «Поиграйся с LLM, почитай про агентов — и сам поймёшь, как это работает»

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

Поиграйся — это как?
Потыкать пару промптов в ChatGPT и решить, что теперь ты можешь строить мультиагентные системы? 🤡 Ну-ну.

AI-агенты — это не «очередная обёртка над GPT». Это архитектура. Состояния, инструменты, цепочки вызовов, память, оценка качества и адекватность поведения.

➡️ Чтобы разобраться, нужно:
— понимать, как устроен LLM под капотом
— уметь подключать внешние данные (RAG, retrievers, rerankers)
— уметь масштабировать и дебажить поведение агентов
— разбираться в фреймворках вроде AutoGen, CrewAI, LangChain
— знать, как всё это тащится в прод

Если вы реально хотите не «поиграться», а научиться собирать рабочие агентные системы — у нас стартует курс по разработке ИИ-агентов 5го июля

P.S: не упусти свой шанс, промокод: LASTCALL на 10.000₽
👍1
🎥 Что посмотреть: DjangoCon Europe 2025

Работаете с Django? Тогда это must-watch.

Организаторы уже выложили видео с докладами — и там много интересного:
архитектура, async, PostgreSQL, security, AI-интеграции, DX и многое другое.

🎙 Выступления — от core-разработчиков и крупных команд. Много живых кейсов, best practices и идей для прокачки проектов.

Все видео доступны по ссылке: https://clc.to/xEkXFQ

Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍3🔥1
😤 Пока вы думаете — остальные уже учатся строить системы, которые работают за них

24 часа до старта курса по AI-агентам. Самое время задуматься о прокачке скиллов, потому что места ограничены!

Если вы до сих пор думаете, что LLM — это просто «вызов через API», то вы рискуете очень скоро оказаться за бортом индустрии.

Модели больше не в центре. Решают те, кто умеет собирать интеллектуальные системы, а не просто «дообучать модельку».

➡️ Что вы потеряете, если не впишетесь:
— навык, который уже востребован на рынке
— понимание, как из GPT сделать полноценного помощника, агента или продукт
— шанс догнать тех, кто уже перешёл на следующий уровень

📌 Курс стартует уже завтра
— 5 вебинаров, живая практика, код, разборы, продовые кейсы
— без «посмотрите статью», только то, что реально нужно

Спикеры: Никита Зелинский (МТС), Диана Павликова, Макс Пташник, Дима Фомин — те, кто реально собирает агентные системы, а не просто про них пишет.

Старт уже завтра — забронируйте место на курсе сейчас
👍1
🧠 Почему алгоритмы — это не только теория, а ключ к быстрым приложениям

Многие думают, что спортивное программирование — это абстрактные задачки, далекие от реальности. Но на практике именно это мышление помогает находить решения, которые ускоряют приложения в десятки и сотни раз.

🔍 В статье:
— Как смена одного алгоритма может устранить «тормоза»
— Почему привычка оценивать сложность сразу окупается
— Что такое Trie, префиксные суммы, LRU — и как они спасают прод
— Почему «измеряй, а не гадай» — главный принцип для продакшена

👇 Если вы хотите писать быстрый код, не только рабочий — читайте:
https://proglib.io/sh/BZ6EzqDbaW

Библиотека питониста #буст
7👍2🔥1
else if...

Библиотека питониста #развлекалово
😁19👍2💯1
🔥 Сегодня стартует курс по AI-агентам!

Онбординг уже сегодня, но ещё можно вписаться — ПОСЛЕДНИЙ ШАНС это сделать.

Мы больше года собирали мультиагентные системы: экспериментировали, переделывали и в итоге — оформили всё в 5 плотных вебинаров.

😤 «А можно ли вообще научиться чему-то за 5 вебинаров?!»

Если вы хотите просто послушать — нет
Если хотите разбираться и делать — да

➡️ На курсе:
— мы не читаем слайдики, а работаем в коде в реальном времени
— можно задавать вопросы прямо на вебинаре
— после каждого вебинара есть домашка и поддержка в чате

И главное — вы получаете системное понимание, а не набор хаотичных туториалов.

️Если вы думаете, что успеете потом — не успеете.
Старт сегодня:
— а те, кто вписался сейчас, будут вас опережатьв проектах, на грейде и в зарплате

Знакомьтесь, эксперт нашего курса:
Никита Зелинский — Chief Data Scientist МТС, Head of ML Platforms, руководитель центра компетенций по Data Science.

Стартуем сегодня — забронируй свое место
👍1
🐒 Monkey patching в Python: спасение или анти-паттерн

Monkey patching — это когда вы внедряетесь в чужой код прямо во время выполнения программы.

Например:
— переопределяете метод библиотеки без форка,
— меняете поведение фреймворка на лету,
— или «чините» баг, не дожидаясь pull request'а.

Когда это бывает полезно:
Патчишь баг в библиотеке, который авторы будут чинить 3 месяца
Легаси-проект: трогать архитектуру нельзя, а фичу сдать надо
Хочешь изменить поведение без вмешательства в исходники

А в чём подвох:
Читаемость кода: новый разработчик ничего не поймёт
Ломает совместимость при апдейтах
Трудно отлаживать и тестировать
Можно выстрелить себе в ногу (и команде тоже)

🔥 Вот теперь холиварный момент

Monkey patching — это:
🔥 Инструмент сильных, просто надо уметь
❤️ Костыль, который нельзя нормализовать
😃 Иногда — единственный способ сделать хорошо
👍 Признак плохой архитектуры, точка

А вы использовали monkey patching в проде?
👇 Расскажите в комментах — чем закончилось и стоило ли оно того?


Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1710🔥10👍2
📱 Свежие релизы Python‑пакетов за последние 7 дней

Вот что появилось или обновилось за последние 7 дней в экосистеме Python:

📍 Релизы
Django Bugfix Release 5.2.4 — исправлены баги


📦 Data, ML, AI, Agents
sentence-transformers 5.0.0 — эмбеддинги, поиск и переранжирование
PEFT 0.16.0 — эффективный файнтюнинг больших моделей
wandb 0.21.0 — мониторинг экспериментов (Weights & Biases)
CrewAI 0.140.0 — фреймворк для координации AI-агентов
statsig-python-core 0.6.0 — SDK для A/B-тестов и экспериментов
PaddlePaddle 3.1.0 — глубокое обучение с поддержкой распределённого обучения

🧩 Инфраструктура, парсинг, работа с файлами
python-calamine 0.4.0 — Python-обёртка над Rust-библиотекой для чтения Excel/ODF
pylance 0.31.0 — поддержка формата Lance в Python
pillow-heif 1.0.0 — поддержка HEIF/HEIC изображений
PyAV 15.0.0 — Python-интерфейс к библиотекам FFmpeg

🧪 Автоматизация, тестирование, Web, BLE
SeleniumBase 4.40.0 — фреймворк для автотестов с поддержкой всех браузеров
browser-use 0.4 — интерфейс сайтов для AI-агентов
bleak 1.0.0 — BLE-клиент на Python, кроссплатформенный

🛠 Разработка серверов и аналитики
fastmcp 2.10.0 — быстрый Python-способ построить MCP-сервер
PostHog 6.0.0 — аналитика событий прямо из Python-приложений

Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍6🔥3
2025/07/09 20:16:19
Back to Top
HTML Embed Code: