🗳 Глобальные переменные, инкапсуляция и области видимости в Python
В Python область видимости (scope) определяет, где переменная видна и как долго живёт.
Основные области видимости:
📝 Локальная — внутри функции
📝 Глобальная — на уровне модуля
📝 Классовая/экземплярная — внутри класса (атрибуты класса и объекта)
🔎 Почему локальные переменные работают быстрее глобальных
Python ищет переменную по правилу LEGB: Local → Enclosing → Global → Built-in
Поиск начинается с самой узкой области — локальной, где переменных меньше, и поиск происходит быстрее.
Пример на замере времени:
✅ Результат: локальные переменные работают заметно быстрее.
🔎 Важно вспомнить об инкапсуляции — ключевом инструменте организации и оптимизации кода
Инкапсуляция:
📝 Локализует переменные внутри классов и функций
📝 Уменьшает количество отслеживаемых интерпретатором переменных
📝 Предотвращает конфликты имён и защищает данные
📝 Позволяет контролировать доступ к атрибутам через методы (getter/setter)
Пример сравнения класса с инкапсуляцией и без:
✅ В реальных приложениях инкапсуляция помогает писать более надежный и поддерживаемый код.
🔎 Ключевые преимущества инкапсуляции и локальных переменных:
📝 Снижение нагрузки на интерпретатор — быстрее выполняется код
📝 Улучшение управления памятью — локальные переменные освобождаются после выхода из функции
📝 Защита данных и уменьшение числа ошибок
🔎 Вывод
Для повышения производительности и удобства поддержки используйте локальные переменные и инкапсуляцию. Это простой, но мощный способ оптимизации вашего кода.
Библиотека питониста #буст
В 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 сек
Инкапсуляция:
Пример сравнения класса с инкапсуляцией и без:
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
👍10❤7🔥1😁1
В некоторых задачах требуется запускать Python-проекты без Docker-образов, чтобы напрямую обращаться к машине и драйверам GPU без дополнительных абстракций.
В таком случае удобным решением становятся runnable-файлы — Python wheel, которые можно собрать с помощью Poetry и использовать в CI/CD.
Основные этапы настройки:
pyproject.toml
настроить включение необходимых пакетов при сборке wheel:[tool.poetry]
packages = [
{ include = "main_dir" },
]
poetry.toml
указать репозиторий для публикации:[repositories.my-registry]
url = "https://europe-west1-python.pkg.dev/my-project/my-registry/"
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
gcloud artifacts print-settings python --project=my-gcp-project --repository=my-registry --location=europe-west1
pip install my-project
python -m my_job # Запуск проекта
Преимущества такого подхода:
Библиотека питониста #буст
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»
👉 Курс здесь
Старт курса уже 5го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место
На курсе:
— разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах
📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями
И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»
👉 Курс здесь
👍2❤1😁1🤔1
👌 Что умеют множества (set) в Python
1️⃣ Множество ≠ список
🔢 Нет дубликатов.
🔢 Порядок не гарантирован.
🔢 Быстро добавлять / удалять / проверять наличие элемента.
2️⃣ «Словарь без значений»
Вместо словаря вида
используйте множество:
Дубликаты исчезнут, а кода станет меньше.
3️⃣ Молниеносная проверка «есть ли элемент»
Преобразование списка в
4️⃣ Сет‑арифметика одним символом
Когда нужно узнать общие или уникальные элементы двух коллекций — множества решают задачу одной строкой.
5️⃣ Конвертируем «на ходу»
Нужно сохранить порядок, но иногда делать быстрые проверки?
Создаём
6️⃣ Мгновенная проверка дубликатов
Одна строка — и вы знаете, есть ли повторения.
Когда выбирать set:
1. Убрать дубликаты, если порядок не важен.
2. Быстро проверить «есть ли элемент».
3. Сравнить коллекции с помощью
4. Проверить уникальность элементов списка.
Библиотека питониста #буст
fruits = {"apples", "strawberries", "pears", "apples"}
print(fruits) # {'apples', 'pears', 'strawberries'}
Вместо словаря вида
colors = {"red": None, "green": None, "blue": None}
используйте множество:
colors = {"red", "green", "blue"}
Дубликаты исчезнут, а кода станет меньше.
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)).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}
Когда нужно узнать общие или уникальные элементы двух коллекций — множества решают задачу одной строкой.
Нужно сохранить порядок, но иногда делать быстрые проверки?
words = open("words.txt").read().split()
word_set = set(words)
anadromes = [w for w in words if w[::-1] in word_set]
Создаём
set
ради быстрых проверок, но сами данные храним в списке.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 / 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 проекты?
Есть ли любимый стек или платформа, которая «просто работает»?
Библиотека питониста #междусобойчик
«У меня небольшой проект на FastAPI. Раньше разворачивал Ruby-приложения на EC2, Heroku, VPS. А что сейчас модно/удобно для Python?»
🔍 Куда хостить FastAPI / Python веб-приложения в 2025
— Быстрый деплой, минимальный DevOps
— Поддержка Python из коробки
— Платформа берёт на себя сетку, сертификаты, CI/CD
— Хорошо для MVP, pet-проектов и стартапов
— Полный контроль над окружением
— Подходит для продакшна, если вы не боитесь DevOps
— Можно легко масштабировать вручную
— Дешевле в долгосрочной перспективе, но требует рук
— Хорошо, если нужны функции «по вызову»
— Сложно, если у вас нестандартные зависимости или heavy backend
— Не для всех библиотек (например, сложно с pydantic, numpy, и heavy ML)
— Почти как Heroku, но от облачного провайдера
— Баланс между простотой и гибкостью
— Можно автошкалировать, легко подключить storage / мониторинг
— Идеально для демо ML-моделей
— Не для продакшна, но отлично для презентаций и ссылок на GitHub
💬 А вы где хостите свои Python проекты?
Есть ли любимый стек или платформа, которая «просто работает»?
Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2🔥1
🧠 «Поиграйся с LLM, почитай про агентов — и сам поймёшь, как это работает»
Это один из самых бесполезных советов, который мы слышали в адрес тех, кто хочет разобраться в AI-агентах.
Поиграйся — это как?
Потыкать пару промптов в ChatGPT и решить, что теперь ты можешь строить мультиагентные системы? 🤡 Ну-ну.
AI-агенты — это не «очередная обёртка над GPT». Это архитектура. Состояния, инструменты, цепочки вызовов, память, оценка качества и адекватность поведения.
➡️ Чтобы разобраться, нужно:
— понимать, как устроен LLM под капотом
— уметь подключать внешние данные (RAG, retrievers, rerankers)
— уметь масштабировать и дебажить поведение агентов
— разбираться в фреймворках вроде AutoGen, CrewAI, LangChain
— знать, как всё это тащится в прод
Если вы реально хотите не «поиграться», а научиться собирать рабочие агентные системы — у нас стартует курс по разработке ИИ-агентов 5го июля
P.S: не упусти свой шанс, промокод:LASTCALL на 10.000₽
Это один из самых бесполезных советов, который мы слышали в адрес тех, кто хочет разобраться в AI-агентах.
Поиграйся — это как?
Потыкать пару промптов в ChatGPT и решить, что теперь ты можешь строить мультиагентные системы? 🤡 Ну-ну.
AI-агенты — это не «очередная обёртка над GPT». Это архитектура. Состояния, инструменты, цепочки вызовов, память, оценка качества и адекватность поведения.
➡️ Чтобы разобраться, нужно:
— понимать, как устроен LLM под капотом
— уметь подключать внешние данные (RAG, retrievers, rerankers)
— уметь масштабировать и дебажить поведение агентов
— разбираться в фреймворках вроде AutoGen, CrewAI, LangChain
— знать, как всё это тащится в прод
Если вы реально хотите не «поиграться», а научиться собирать рабочие агентные системы — у нас стартует курс по разработке ИИ-агентов 5го июля
P.S: не упусти свой шанс, промокод:
👍1
🎥 Что посмотреть: DjangoCon Europe 2025
Работаете с Django? Тогда это must-watch.
Организаторы уже выложили видео с докладами — и там много интересного:
✅ архитектура, async, PostgreSQL, security, AI-интеграции, DX и многое другое.
🎙 Выступления — от core-разработчиков и крупных команд. Много живых кейсов, best practices и идей для прокачки проектов.
Все видео доступны по ссылке: https://clc.to/xEkXFQ
Библиотека питониста #буст
Работаете с Django? Тогда это must-watch.
Организаторы уже выложили видео с докладами — и там много интересного:
🎙 Выступления — от 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 вебинаров, живая практика, код, разборы, продовые кейсы
— без «посмотрите статью», только то, что реально нужно
Спикеры: Никита Зелинский (МТС), Диана Павликова, Макс Пташник, Дима Фомин — те, кто реально собирает агентные системы, а не просто про них пишет.
❗Старт уже завтра — забронируйте место на курсе сейчас
⚡24 часа до старта курса по AI-агентам. Самое время задуматься о прокачке скиллов, потому что места ограничены!
Если вы до сих пор думаете, что LLM — это просто «вызов через API», то вы рискуете очень скоро оказаться за бортом индустрии.
Модели больше не в центре. Решают те, кто умеет собирать интеллектуальные системы, а не просто «дообучать модельку».
➡️ Что вы потеряете, если не впишетесь:
— навык, который уже востребован на рынке
— понимание, как из GPT сделать полноценного помощника, агента или продукт
— шанс догнать тех, кто уже перешёл на следующий уровень
📌 Курс стартует уже завтра
— 5 вебинаров, живая практика, код, разборы, продовые кейсы
— без «посмотрите статью», только то, что реально нужно
Спикеры: Никита Зелинский (МТС), Диана Павликова, Макс Пташник, Дима Фомин — те, кто реально собирает агентные системы, а не просто про них пишет.
❗Старт уже завтра — забронируйте место на курсе сейчас
👍1
🧠 Почему алгоритмы — это не только теория, а ключ к быстрым приложениям
Многие думают, что спортивное программирование — это абстрактные задачки, далекие от реальности. Но на практике именно это мышление помогает находить решения, которые ускоряют приложения в десятки и сотни раз.
🔍 В статье:
— Как смена одного алгоритма может устранить «тормоза»
— Почему привычка оценивать сложность сразу окупается
— Что такое Trie, префиксные суммы, LRU — и как они спасают прод
— Почему «измеряй, а не гадай» — главный принцип для продакшена
👇 Если вы хотите писать быстрый код, не только рабочий — читайте:
https://proglib.io/sh/BZ6EzqDbaW
Библиотека питониста #буст
Многие думают, что спортивное программирование — это абстрактные задачки, далекие от реальности. Но на практике именно это мышление помогает находить решения, которые ускоряют приложения в десятки и сотни раз.
🔍 В статье:
— Как смена одного алгоритма может устранить «тормоза»
— Почему привычка оценивать сложность сразу окупается
— Что такое Trie, префиксные суммы, LRU — и как они спасают прод
— Почему «измеряй, а не гадай» — главный принцип для продакшена
👇 Если вы хотите писать быстрый код, не только рабочий — читайте:
https://proglib.io/sh/BZ6EzqDbaW
Библиотека питониста #буст
❤7👍2🔥1
🔥 Сегодня стартует курс по AI-агентам!
Онбординг уже сегодня, но ещё можно вписаться — ПОСЛЕДНИЙ ШАНС это сделать.
Мы больше года собирали мультиагентные системы: экспериментировали, переделывали и в итоге — оформили всё в 5 плотных вебинаров.
😤 «А можно ли вообще научиться чему-то за 5 вебинаров?!»
Если вы хотите просто послушать — нет
Если хотите разбираться и делать — да
➡️ На курсе:
— мы не читаем слайдики, а работаем в коде в реальном времени
— можно задавать вопросы прямо на вебинаре
— после каждого вебинара есть домашка и поддержка в чате
И главное — вы получаете системное понимание, а не набор хаотичных туториалов.
⚡️Если вы думаете, что успеете потом — не успеете.
Старт сегодня:
— а те, кто вписался сейчас, будут вас опережать — в проектах, на грейде и в зарплате
Знакомьтесь, эксперт нашего курса:
Никита Зелинский — Chief Data Scientist МТС, Head of ML Platforms, руководитель центра компетенций по Data Science.
❗Стартуем сегодня — забронируй свое место
Онбординг уже сегодня, но ещё можно вписаться — ПОСЛЕДНИЙ ШАНС это сделать.
Мы больше года собирали мультиагентные системы: экспериментировали, переделывали и в итоге — оформили всё в 5 плотных вебинаров.
😤 «А можно ли вообще научиться чему-то за 5 вебинаров?!»
Если вы хотите просто послушать — нет
Если хотите разбираться и делать — да
➡️ На курсе:
— мы не читаем слайдики, а работаем в коде в реальном времени
— можно задавать вопросы прямо на вебинаре
— после каждого вебинара есть домашка и поддержка в чате
И главное — вы получаете системное понимание, а не набор хаотичных туториалов.
⚡️Если вы думаете, что успеете потом — не успеете.
Старт сегодня:
— а те, кто вписался сейчас, будут вас опережать — в проектах, на грейде и в зарплате
Знакомьтесь, эксперт нашего курса:
Никита Зелинский — Chief Data Scientist МТС, Head of ML Platforms, руководитель центра компетенций по Data Science.
❗Стартуем сегодня — забронируй свое место
👍1
🐒 Monkey patching в Python: спасение или анти-паттерн
Monkey patching — это когда вы внедряетесь в чужой код прямо во время выполнения программы.
Например:
— переопределяете метод библиотеки без форка,
— меняете поведение фреймворка на лету,
— или «чините» баг, не дожидаясь pull request'а.
Когда это бывает полезно:
✅ Патчишь баг в библиотеке, который авторы будут чинить 3 месяца
✅ Легаси-проект: трогать архитектуру нельзя, а фичу сдать надо
✅ Хочешь изменить поведение без вмешательства в исходники
А в чём подвох:
❌ Читаемость кода: новый разработчик ничего не поймёт
❌ Ломает совместимость при апдейтах
❌ Трудно отлаживать и тестировать
❌ Можно выстрелить себе в ногу (и команде тоже)
🔥 Вот теперь холиварный момент
Monkey patching — это:
🔥 — Инструмент сильных, просто надо уметь
❤️ — Костыль, который нельзя нормализовать
😃 — Иногда — единственный способ сделать хорошо
👍 — Признак плохой архитектуры, точка
А вы использовали monkey patching в проде?
👇 Расскажите в комментах — чем закончилось и стоило ли оно того?
Библиотека питониста #междусобойчик
Monkey patching — это когда вы внедряетесь в чужой код прямо во время выполнения программы.
Например:
— переопределяете метод библиотеки без форка,
— меняете поведение фреймворка на лету,
— или «чините» баг, не дожидаясь pull request'а.
Когда это бывает полезно:
А в чём подвох:
🔥 Вот теперь холиварный момент
Monkey patching — это:
🔥 — Инструмент сильных, просто надо уметь
❤️ — Костыль, который нельзя нормализовать
😃 — Иногда — единственный способ сделать хорошо
👍 — Признак плохой архитектуры, точка
А вы использовали monkey patching в проде?
👇 Расскажите в комментах — чем закончилось и стоило ли оно того?
Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁17❤10🔥10👍2
Вот что появилось или обновилось за последние 7 дней в экосистеме Python:
📍 Релизы
📦 Data, ML, AI, Agents
🧩 Инфраструктура, парсинг, работа с файлами
🧪 Автоматизация, тестирование, Web, BLE
🛠 Разработка серверов и аналитики
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍6🔥3