Senior Python Developer
40.7K subscribers
2.25K photos
6 videos
1 file
561 links
№ 4931117861
Публикуем интересные/полезные фичи/библиотеки языка.

По вопросам сотрудничества: @adv_and_pr

Канал на бирже:
https://telega.in/c/seniorpy
Download Telegram
➡️ Использование cachetools для кэширования в Python

cachetools — это небольшая, но мощная библиотека для кэширования, которая предоставляет различные стратегии кэширования, такие как LRU (Least Recently Used), LFU (Least Frequently Used) и другие. Она позволяет оптимизировать производительность, избегая повторных вычислений или запросов.

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

🔗 Ссылочка на доку
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос на собеседовании

Как работают замыкания (closures) в Python, и как их можно использовать для сохранения состояния между вызовами функции?

Ответ ⬇️
Замыкания позволяют внутренней функции запоминать переменные из объемлющей области видимости даже после завершения работы внешней функции. Это полезно для создания функций с сохраненным состоянием, например, для подсчета числа вызовов.

🗣️ Пример:
def counter():
count = 0 # Переменная в объемлющей области видимости

def increment():
nonlocal count # Обращаемся к переменной из объемлющей области
count += 1
return count

return increment

# Пример использования
counter1 = counter()
print(counter1()) # 1
print(counter1()) # 2

counter2 = counter()
print(counter2()) # 1

# Результат выполнения:
# 1
# 2
# 1
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Использование функции itertools.tee() для дублирования итераторов

itertools.tee() — это интересная функция из модуля itertools, позволяющая создавать несколько независимых копий одного и того же итератора.

🗣️ Это полезно, когда вам нужно одновременно итерировать по одним и тем же данным в разных частях кода, не повторяя вычисления.

✔️ itertools.tee() делает работу с итераторами гибче и удобнее.
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Использование модуля contextvars для управления состоянием в асинхронном коде

Модуль contextvars, появившийся в Python 3.7, предоставляет механизм для хранения и управления контекстными переменными, которые сохраняют свое значение в пределах текущего потока или корутины.

🗣 Это особенно полезно в асинхронном программировании, где обычные переменные могут вести себя непредсказуемо из-за переключения контекстов.

✔️ contextvars повышает надежность и предсказуемость асинхронного кода, позволяя безопасно работать с состоянием.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 SPRINT OFFER: Инженер по автоматизации тестирования (Python)

Оффер за 5 дней – и вы в команде, которая создает программные системы для российской низкоорбитальной спутниковой группировки 🚀

БЮРО 1440 – место, где инженерные решения становятся частью технологий, определяющих будущее спутниковой связи и передачи данных. Команда нанимает в департамент "Единые системы управления и разработка ПО", где инженеры разрабатывают цифровые двойники, инструменты проектирования космической системы, внутреннее облако, дата-платформу, инструменты для разработчиков и системы управления разработкой, занимается тестированием и раскаткой ПО.

📍 Чем предстоит заниматься:
• Проводить полный цикл тестирования API, UI, GUI;
• Разрабатывать инструменты тестирования для космических систем;
• Развивать и оптимизировать тестовые фреймворки и интегрировать качество в CI/CD;
• Участвовать в технических обсуждениях, код-ревью и планировании.
Мы ищем инженеров уровня Middle и Senior с опытом в тестировании от 5 лет, высшим техническим образованием и опытом по автоматизации тестирования на Python от 3 лет.  

⚙️ Как проходит SPRINT OFFER:
1️⃣ Подайте заявку до 24 июня;
2️⃣ Пройдите техническое и менеджерское интервью;
3️⃣ Получите оффер в течение 5 рабочих дней.

💼 Что предлагаем:
🚀 Удалённую работу по РФ, гибридный формат или офис;
🚀 Участие в разработке космических технологий и спутниковых систем связи;
🚀 Карьерный рост внутри команды и возможность развиваться в смежных направлениях;
🚀 Возможность участия в профессиональных конференциях, тренингах и обучение в собственной академии за счет компании;
🚀 ДМС со стоматологией, страхование, корпоративные скидки и комплексная программа поддержки сотрудников.

Оставляйте заявку до 24 июня и присоединяйтесь к команде БЮРО 1440, которая создаёт связь нового поколения!
➡️ Использование библиотеки Pypika для динамического построения SQL-запросов

Pypika позволяет создавать сложные запросы программным способом, избегая ошибок ручного написания SQL-кода и защищая от SQL-инъекций. Это особенно полезно при построении динамических и параметризованных запросов в приложениях.

Pypika — отличный выбор, если вам нужно строить запросы к базе данных на лету.

🔗 Ссылочка на доку
Please open Telegram to view this post
VIEW IN TELEGRAM
Проект Ozon Tech Route 256 Pro обновился, и теперь в нём есть направление Data Science.

Это интенсивный онлайн-курс для специалистов с опытом. Он длится 2 месяца и охватывает классический Machine Learning, компьютерное зрение и применение генеративных моделей в реальных продуктах.

Хочешь решать сложные задачи с экспертами Ozon Tech? Залетай за подробностями и оставляй заявку: https://route256.ozon.ru/ds. Это бесплатно!
➡️ Использование модуля ast для анализа и модификации исходного кода Python

Модуль ast (Abstract Syntax Tree) позволяет анализировать и модифицировать исходный код Python на уровне его абстрактного синтаксического дерева (AST). Это мощный инструмент для тех, кто хочет динамически изменять код, строить анализаторы или трансформировать Python-программы на лету.

🗣 Этот модуль предоставляет доступ к внутренним структурам Python, что делает его полезным для статического анализа кода или автоматического изменения исходного текста программы.

✔️ ast открывает множество возможностей для тех, кто занимается метапрограммированием или созданием собственных инструментов для анализа и оптимизации Python-кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как создаются продукты, которыми пользуются миллионы?

Покажут на «Сезоне кода» в Казани — летнем ИТ-фесте, где объединяют разработку, аналитику и продукт в одном пространстве.

В программе:

— прикладные доклады команд Т-Банка и других компаний;
— демо-зоны с продуктами и платформами: можно посмотреть, как все работает изнутри и пообщаться с разработчиками;
— новая секция «Продуктовая кухня»: поговорим о развитии продуктов через инсайты, data-driven-подход и продуманный дизайн.

И конечно, живое общение, интерактивы и афтепати с диджеем в конце дня.

Количество мест ограничено — успейте зарегистрироваться
➡️ Использование модуля ast для анализа и модификации исходного кода Python

Модуль ast (Abstract Syntax Tree) позволяет анализировать и модифицировать исходный код Python на уровне его абстрактного синтаксического дерева (AST). Это мощный инструмент для тех, кто хочет динамически изменять код, строить анализаторы или трансформировать Python-программы на лету.

🗣 Этот модуль предоставляет доступ к внутренним структурам Python, что делает его полезным для статического анализа кода или автоматического изменения исходного текста программы.

✔️ ast открывает множество возможностей для тех, кто занимается метапрограммированием или созданием собственных инструментов для анализа и оптимизации Python-кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Использование библиотеки aiometer для конкурентного выполнения асинхронных задач

aiometer позволяет эффективно управлять количеством одновременно выполняемых асинхронных задач. Это полезно, когда нужно ограничить количество параллельно выполняемых задач, избегая перегрузки системы.

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

🔗 Ссылочка на доку
Please open Telegram to view this post
VIEW IN TELEGRAM
Деструкторы

В дополнение к конструкторам в Python также существуют и деструкторы. В каждом конкретном классе деструктор можно переопределить с помощью метода __del__, который вызывается автоматически при удалении объекта.

Переопределение деструкторов на практике встречается редко, но на случай каверзных вопросов на собеседованиях стоит знать об этой особенности.
Генерация случайных данных

Пакет faker позволяет создавать случайные данные, которые затем можно использовать, например, для тестирования программ. К примеру методы name, address, job и email генерируют соответственно случайное несуществующее имя, адрес, должность и почту.

Разнообразие методов довольно широкое, с полным спектром можно ознакомиться в документации.
Градиентный бустинг уже много лет остается одним из самых результативных алгоритмов машинного обучения.

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

📆  1 июля в 18:00 МСК приглашаем вас на открытый урок в преддверии старта курса «Машинное обучение. Специализация». 

На занятии разберём:
• устройство градиентного бустинга;
• поймём, почему этот подход стал одним из стандартов индустрии;
• рассмотрим современные библиотеки, которые позволяют решать задачи машинного обучения на практике.

Урок подойдёт тем, кто только начинает путь в Data Science, хочет разобраться в ключевых алгоритмах машинного обучения, понять, как применять их для построения точных моделей.

👉 Зарегистрируйтесь и познакомьтесь с одним из самых востребованных инструментов современного машинного обучения: https://otus.pw/IAAi/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
6 Python декораторов, которые значительно упростят ваш код

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

Смотреть статью
Идём на AI Hardcore Day в офис Авито на Лесной 11 июля! 🤩

Будем слушать доклады о Spec-Driven Development, разработке и тестировании MCP, атаках на GenAI-агентов.
А после — нетворкать на террасе.

Регистрация и подробности — по ссылке.

Кстати, доклады будут не под запись — советуем не пропускать!
Please open Telegram to view this post
VIEW IN TELEGRAM
Метод Counter.most_common()

Возвращает список из n наиболее распространенных элементов и их количество от наиболее распространенных до наименее. Если n опущено или None, метод cnt.most_common() возвращает все элементы в счетчике.

Элементы с равным количеством упорядочены в порядке, в котором они встречаются первыми.
Вау, вот это скорость разработки! 🚀

На GitVerse появилось зеркало PyPI — теперь Python‑пакеты доступны, даже если upstream PyPI упадёт или станет недоступен.

Ставьте зеркало как основной источник или держите как резерв. Рассказали, как это сделать, здесь!
Создание объектов, поддерживающих выражение with

Все знают о том, как, например, открыть файл, или, возможно, как установить блокировку с использованием оператора with. Но можно ли самостоятельно реализовать механизм управления блокировками? Да, это вполне реально. Протокол управления контекстом исполнения реализуется с использованием методов __enter__ и __exit__ (первая картинка).

Это — наиболее распространённый способ реализации возможностей менеджера контекста в Python, но то же самое можно сделать и проще (вторая картинка).

Здесь протокол управления контекстом реализован с использованием декоратора contextmanager. Первая часть функции tag (до yield) выполняется при входе в блок with. Затем выполняется сам этот блок, а после этого выполняется оставшаяся часть функции tag.
Композиция (ассоциация) классов

Это полезный способ организации взаимодействия классов в парадигме ООП, когда один из классов (в примере на картинке это Wages) является полем другого (Worker).