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, появившийся в 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, которая создаёт связь нового поколения!
Оффер за 5 дней – и вы в команде, которая создает программные системы для российской низкоорбитальной спутниковой группировки 🚀
БЮРО 1440 – место, где инженерные решения становятся частью технологий, определяющих будущее спутниковой связи и передачи данных. Команда нанимает в департамент "Единые системы управления и разработка ПО", где инженеры разрабатывают цифровые двойники, инструменты проектирования космической системы, внутреннее облако, дата-платформу, инструменты для разработчиков и системы управления разработкой, занимается тестированием и раскаткой ПО.
📍 Чем предстоит заниматься:
• Проводить полный цикл тестирования API, UI, GUI;
• Разрабатывать инструменты тестирования для космических систем;
• Развивать и оптимизировать тестовые фреймворки и интегрировать качество в CI/CD;
• Участвовать в технических обсуждениях, код-ревью и планировании.
Мы ищем инженеров уровня Middle и Senior с опытом в тестировании от 5 лет, высшим техническим образованием и опытом по автоматизации тестирования на Python от 3 лет.
⚙️ Как проходит SPRINT OFFER:
1️⃣ Подайте заявку до 24 июня;
2️⃣ Пройдите техническое и менеджерское интервью;
3️⃣ Получите оффер в течение 5 рабочих дней.
💼 Что предлагаем:
🚀 Удалённую работу по РФ, гибридный формат или офис;
🚀 Участие в разработке космических технологий и спутниковых систем связи;
🚀 Карьерный рост внутри команды и возможность развиваться в смежных направлениях;
🚀 Возможность участия в профессиональных конференциях, тренингах и обучение в собственной академии за счет компании;
🚀 ДМС со стоматологией, страхование, корпоративные скидки и комплексная программа поддержки сотрудников.
Оставляйте заявку до 24 июня и присоединяйтесь к команде БЮРО 1440, которая создаёт связь нового поколения!
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. Это бесплатно!
Это интенсивный онлайн-курс для специалистов с опытом. Он длится 2 месяца и охватывает классический Machine Learning, компьютерное зрение и применение генеративных моделей в реальных продуктах.
Хочешь решать сложные задачи с экспертами Ozon Tech? Залетай за подробностями и оставляй заявку: https://route256.ozon.ru/ds. Это бесплатно!
Модуль ast (Abstract Syntax Tree) позволяет анализировать и модифицировать исходный код Python на уровне его абстрактного синтаксического дерева (AST). Это мощный инструмент для тех, кто хочет динамически изменять код, строить анализаторы или трансформировать Python-программы на лету.
✔️ ast открывает множество возможностей для тех, кто занимается метапрограммированием или созданием собственных инструментов для анализа и оптимизации Python-кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как создаются продукты, которыми пользуются миллионы?
Покажут на «Сезоне кода» в Казани — летнем ИТ-фесте, где объединяют разработку, аналитику и продукт в одном пространстве.
В программе:
— прикладные доклады команд Т-Банка и других компаний;
— демо-зоны с продуктами и платформами: можно посмотреть, как все работает изнутри и пообщаться с разработчиками;
— новая секция «Продуктовая кухня»: поговорим о развитии продуктов через инсайты, data-driven-подход и продуманный дизайн.
И конечно, живое общение, интерактивы и афтепати с диджеем в конце дня.
Количество мест ограничено — успейте зарегистрироваться
Покажут на «Сезоне кода» в Казани — летнем ИТ-фесте, где объединяют разработку, аналитику и продукт в одном пространстве.
В программе:
— прикладные доклады команд Т-Банка и других компаний;
— демо-зоны с продуктами и платформами: можно посмотреть, как все работает изнутри и пообщаться с разработчиками;
— новая секция «Продуктовая кухня»: поговорим о развитии продуктов через инсайты, data-driven-подход и продуманный дизайн.
И конечно, живое общение, интерактивы и афтепати с диджеем в конце дня.
Количество мест ограничено — успейте зарегистрироваться
Модуль ast (Abstract Syntax Tree) позволяет анализировать и модифицировать исходный код Python на уровне его абстрактного синтаксического дерева (AST). Это мощный инструмент для тех, кто хочет динамически изменять код, строить анализаторы или трансформировать Python-программы на лету.
✔️ ast открывает множество возможностей для тех, кто занимается метапрограммированием или созданием собственных инструментов для анализа и оптимизации Python-кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
aiometer позволяет эффективно управлять количеством одновременно выполняемых асинхронных задач. Это полезно, когда нужно ограничить количество параллельно выполняемых задач, избегая перегрузки системы.
• aiometer — отличный выбор для случаев, когда нужно контролировать количество параллельных операций, например, при выполнении большого числа запросов к API.Please open Telegram to view this post
VIEW IN TELEGRAM
Деструкторы
В дополнение к конструкторам в Python также существуют и деструкторы. В каждом конкретном классе деструктор можно переопределить с помощью метода
Переопределение деструкторов на практике встречается редко, но на случай каверзных вопросов на собеседованиях стоит знать об этой особенности.
В дополнение к конструкторам в Python также существуют и деструкторы. В каждом конкретном классе деструктор можно переопределить с помощью метода
__del__, который вызывается автоматически при удалении объекта.Переопределение деструкторов на практике встречается редко, но на случай каверзных вопросов на собеседованиях стоит знать об этой особенности.
Генерация случайных данных
Пакет faker позволяет создавать случайные данные, которые затем можно использовать, например, для тестирования программ. К примеру методы name, address, job и email генерируют соответственно случайное несуществующее имя, адрес, должность и почту.
Разнообразие методов довольно широкое, с полным спектром можно ознакомиться в документации.
Пакет faker позволяет создавать случайные данные, которые затем можно использовать, например, для тестирования программ. К примеру методы name, address, job и email генерируют соответственно случайное несуществующее имя, адрес, должность и почту.
Разнообразие методов довольно широкое, с полным спектром можно ознакомиться в документации.
Градиентный бустинг уже много лет остается одним из самых результативных алгоритмов машинного обучения.
Именно он помог выиграть тысячи соревнований по анализу данных и до сих пор используется для решения реальных бизнес-задач.
📆 1 июля в 18:00 МСК приглашаем вас на открытый урок в преддверии старта курса «Машинное обучение. Специализация».
На занятии разберём:
• устройство градиентного бустинга;
• поймём, почему этот подход стал одним из стандартов индустрии;
• рассмотрим современные библиотеки, которые позволяют решать задачи машинного обучения на практике.
Урок подойдёт тем, кто только начинает путь в Data Science, хочет разобраться в ключевых алгоритмах машинного обучения, понять, как применять их для построения точных моделей.
👉 Зарегистрируйтесь и познакомьтесь с одним из самых востребованных инструментов современного машинного обучения: https://otus.pw/IAAi/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Именно он помог выиграть тысячи соревнований по анализу данных и до сих пор используется для решения реальных бизнес-задач.
📆 1 июля в 18:00 МСК приглашаем вас на открытый урок в преддверии старта курса «Машинное обучение. Специализация».
На занятии разберём:
• устройство градиентного бустинга;
• поймём, почему этот подход стал одним из стандартов индустрии;
• рассмотрим современные библиотеки, которые позволяют решать задачи машинного обучения на практике.
Урок подойдёт тем, кто только начинает путь в Data Science, хочет разобраться в ключевых алгоритмах машинного обучения, понять, как применять их для построения точных моделей.
👉 Зарегистрируйтесь и познакомьтесь с одним из самых востребованных инструментов современного машинного обучения: https://otus.pw/IAAi/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
6 Python декораторов, которые значительно упростят ваш код
Декораторы могут помочь вам писать меньше кода для реализации сложной логики и повторно использовать его повсюду.
Смотреть статью
Декораторы могут помочь вам писать меньше кода для реализации сложной логики и повторно использовать его повсюду.
Смотреть статью
Идём на AI Hardcore Day в офис Авито на Лесной 11 июля! 🤩
Будем слушать доклады о Spec-Driven Development, разработке и тестировании MCP, атаках на GenAI-агентов.
А после — нетворкать на террасе.
⚡ Регистрация и подробности — по ссылке.
Кстати, доклады будут не под запись — советуем не пропускать!
Будем слушать доклады о Spec-Driven Development, разработке и тестировании MCP, атаках на GenAI-агентов.
А после — нетворкать на террасе.
Кстати, доклады будут не под запись — советуем не пропускать!
Please open Telegram to view this post
VIEW IN TELEGRAM
Метод Counter.most_common()
Возвращает список из n наиболее распространенных элементов и их количество от наиболее распространенных до наименее. Если n опущено или None, метод cnt.most_common() возвращает все элементы в счетчике.
Элементы с равным количеством упорядочены в порядке, в котором они встречаются первыми.
Возвращает список из n наиболее распространенных элементов и их количество от наиболее распространенных до наименее. Если n опущено или None, метод cnt.most_common() возвращает все элементы в счетчике.
Элементы с равным количеством упорядочены в порядке, в котором они встречаются первыми.
Вау, вот это скорость разработки! 🚀
На GitVerse появилось зеркало PyPI — теперь Python‑пакеты доступны, даже если upstream PyPI упадёт или станет недоступен.
Ставьте зеркало как основной источник или держите как резерв. Рассказали, как это сделать, здесь!
На GitVerse появилось зеркало PyPI — теперь Python‑пакеты доступны, даже если upstream PyPI упадёт или станет недоступен.
Ставьте зеркало как основной источник или держите как резерв. Рассказали, как это сделать, здесь!
Создание объектов, поддерживающих выражение with
Все знают о том, как, например, открыть файл, или, возможно, как установить блокировку с использованием оператора with. Но можно ли самостоятельно реализовать механизм управления блокировками? Да, это вполне реально. Протокол управления контекстом исполнения реализуется с использованием методов
Это — наиболее распространённый способ реализации возможностей менеджера контекста в Python, но то же самое можно сделать и проще (вторая картинка).
Здесь протокол управления контекстом реализован с использованием декоратора contextmanager. Первая часть функции tag (до yield) выполняется при входе в блок with. Затем выполняется сам этот блок, а после этого выполняется оставшаяся часть функции tag.
Все знают о том, как, например, открыть файл, или, возможно, как установить блокировку с использованием оператора with. Но можно ли самостоятельно реализовать механизм управления блокировками? Да, это вполне реально. Протокол управления контекстом исполнения реализуется с использованием методов
__enter__ и __exit__ (первая картинка).Это — наиболее распространённый способ реализации возможностей менеджера контекста в Python, но то же самое можно сделать и проще (вторая картинка).
Здесь протокол управления контекстом реализован с использованием декоратора contextmanager. Первая часть функции tag (до yield) выполняется при входе в блок with. Затем выполняется сам этот блок, а после этого выполняется оставшаяся часть функции tag.