seniorpy | Unsorted

Telegram-канал seniorpy - Senior Python Developer

54326

№ 4931117861 Публикуем интересные/полезные фичи/библиотеки языка. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorpy

Subscribe to a channel

Senior Python Developer

#вопросы_с_собеседований
Что такое Green thread?

Green thread (зеленые треды) — легковесные треды внутри виртуальной машины.

Операционная система не видит их. С точки зрения ОС запущен один процесс виртуальной машины, а что внутри нее — неизвестно.

Такими тредами управляет сама виртуальная машина: порождает, исполняет, согласует доступ к ресурсам.

Читать полностью…

Senior Python Developer

⚡️ Онлайн-хакатон MORE.Tech 5.0 с призовым фондом 1 100 000 рублей от Банка ВТБ!

🟣 Треки:

Mobile+Web: разработай сервис для подбора оптимального банковского отделения;

Metaverse: создай элементы виртуального пространства для взаимодействия пользователей с продуктами банка.

Что тебя ждет:
🔹 Познакомишься с опытными ИТ-экспертами ВТБ;
🔹 Прокачаешься в разработке за 3 дня как за месяц.

Помимо главного денежного приза в 1 100 000 рублей, тебя ждет фирменный мерч и подарки! 

Если нет своей команды — поможем ее собрать!
Регистрируйся и вступай в чат участников, получи ответы на волнующие вопросы, найди команду или создай свою.

▶️ Регистрация уже идет, успевай подать заявку по ссылке

Реклама. ООО "ФИЗТЕХ ДЖЕНЕЗИС". ИНН 7735184156. erid: LjN8K135i

Читать полностью…

Senior Python Developer

Библиотека xarray

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

Xarray часто используется в научных вычислениях и анализе данных, особенно при работе с геопространственными данными, временными рядами, метеоданными и другой многомерной информацией.
Основные преимущества xarray — это возможность помечать оси данных и выполнять операции по этим осям, легкость совместного использования данных и метаданных.

В этом примере создана DataArray со случайными данными размерностей 2x3. Для осей заданы метки "city" и "year". Это позволяет легко обращаться к данным по городам и годам. Xarray сохраняет метаданные вместе с данными.

Читать полностью…

Senior Python Developer

Метод id()

Метод id() возвращает уникальный идентификатор объекта.

Каждый объект в Python имеет свой идентификатор, который назначается при создании объекта. Этот идентификатор гарантированно уникален в пределах жизни объекта.

id() позволяет получить числовое представление идентификатора объекта. Это может быть полезно при отладке и тестировании программы.

#это_база

Читать полностью…

Senior Python Developer

Посмотрите, как проходит архитектурная секция на открытом собеседовании и как на практике создаётся архитектура сервиса. На примере проектирования системы вы узнаете: 

Какую архитектуру приложения выбрать: монолитную или микросервисную? 
Что такое вертикальное и горизонтальное масштабирование? 
Как выбрать формат и протокол обмена данными в зависимости от типа приложения? 
Какой тип хранения данных выбрать и какие есть подводные камни у каждого из решений? 
Что такое балансировка нагрузки и какие существуют стратегии кэширования? 
Нужно ли затаскивать в проект брокеры сообщений? 

Ждём вас 12 сентября, во вторник, в 19:00 по Москве. Будет много полезного!
Встречу проведут: 

◾️Дмитрий Шеламов 
Senior Backend Engineer в Delivery Hero, Berlin, лид авторов на курсе «Архитектура ПО» в Практикуме
◾️Дмитрий Орлов 
Техлид в Яндексе, преподаватель в школе бэкенд-разработки Яндекса, автор курса «Архитектура ПО» в Практикуме

→ Зарегистрируйтесь на вебинар

Читать полностью…

Senior Python Developer

Как управлять состоянием системы через события?

Event-driven архитектура — концепция программирования, которая позволяет создавать сложные приложения, используя событийно-ориентированный подход. Так создаются распределенные системы, которые легко масштабируются и обладают высокой отказоустойчивостью.
 
Начните изучать эту технологию на бесплатном открытом уроке «Архитектурный подход Event Driven Architecture» от OTUS: https://otus.pw/YgRc/

На занятии рассмотрим:
✔️ взаимодействие сервисов на основе событий;
✔️ плюсы и минусы такого подхода;
✔️ сочетания событийного и синхронного взаимодействия;
✔️ паттерны проектирования событий;
✔️ подход Event Sourcing и CQRS.

Урок пройдёт 27 сентября в 20:00 мск в рамках курса «Microservice Architecture».

👩‍💻 Пройдите вступительное тестирование прямо сейчас и зарегистрируйтесь на событие: https://otus.pw/YgRc/

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8KTre4

Читать полностью…

Senior Python Developer

collections.Counter

Collections.Counter — это класс, предназначенный для подсчета хешей (hashable объектов).
Он позволяет удобно и эффективно подсчитывать вхождения элементов в какой-либо последовательности.

Основное отличие Counter от обычного словаря в том, что он не выбрасывает исключение, если ключ не существует, а просто создает новый ключ со значением 0. Это упрощает подсчет элементов.
Counter может принимать на вход любую итерируемую последовательность (список, кортеж и т.д.).

Основные способы использования Counter:
— Подсчет слов или букв в тексте.
— Подсчет появления элементов в списке или итераторе.
— Нахождение наиболее часто встречающихся элементов.
— Использование при решении задач на вероятность и статистику.

Читать полностью…

Senior Python Developer

collections.MutableMapping

Collections.MutableMapping — это интерфейс, который представляет изменяемое отображение (словарь).
Он наследуется от интерфейса Mapping и добавляет методы для изменения отображения, такие как __setitem__, __delitem__ и clear.

Основное преимущество в использовании MutableMapping — это возможность передавать экземпляры такого класса в любое API, ожидающее словарь.
Например, во многих функциях в стандартной библиотеке есть параметры типа dict. Если создать класс, реализующий MutableMapping, его экземпляры можно будет передавать в такие функции.

Читать полностью…

Senior Python Developer

Атрибут __slots__

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

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

Использование __slots__ экономит память, так как экземпляры не создают словарь __dict__ для атрибутов.

__slots__ не наследуются, для каждого подкласса нужно определять свои слоты.

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

#это_база

Читать полностью…

Senior Python Developer

Hiring Days в VK Cloud

Собеседования в команду IaaS пройдут уже 30 сентября и 1 октября. У вас будет возможность всего за одни выходные стать частью одной из трех команд, обеспечивающих поддержку операционной системой для дата-центров: Network + Services, Storage, Compute.

👉 Узнайте больше и отправляйте отклик до 28 сентября.

Читать полностью…

Senior Python Developer

🔍 Rust Journey: Хотите освоить язык программирования, который завоевывает мир?

🚀 Илон Маск, один из ведущих инноваторов нашего времени, утверждает, что за Rust будущее. А когда последний раз он ошибался в своих прогнозах? 😉

🪟Также недавно стало известно, что ядро Windows 11 переписывается на Rust.

✨ Не упустите свой шанс быть в авангарде IT-революции. Подписывайтесь на канал Rust Journey и начните свой путь в захватывающий мир Rust сегодня!

Читать полностью…

Senior Python Developer

Библиотека yt-dlp

yt-dlpэто библиотека и утилита командной строки для скачивания видео с YouTube и других сайтов.

Основные возможности и применение yt-dlp:
— Поддерживает скачивание видео, аудио, плейлистов, каналов и др с YouTube. Помимо этого работает с сотнями других сайтов — Vimeo, Facebook, ВКонтакте, TikTok и др. Позволяет скачивать контент практически отовсюду.
— Извлечение метаданных и обложек видео.
— Конвертация медиафайлов в другие форматы после скачивания.
— Поддержка прокси и лимитов скорости.
— Множество настроек для извлечения данных, именования файлов, пост-обработки и т.д.
— Удобная утилита командной строки и модуль Python для автоматизации.

Читать полностью…

Senior Python Developer

Argcomplete

Argcompleteэто библиотека для автодополнения аргументов командной строки.
Она позволяет легко добавить автодополнение для argparse в интерактивных оболочках (например, bash, zsh).

Библиотека работает в разных оболочках (bash, zsh и др.) без изменения кода и обладает простой интеграцией — достаточно декорировать функцию argparse декоратором @argcomplete.register.

Основные возможности argcomplete:
— Автоматическое дополнение имен файлов и каталогов при вводе путей.
— Предложение вариантов для аргументов на основе возможных значений, описанных через argparse.
— Дополнение для подкоманд в приложениях с вложенной структурой команд.

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Что делать если нужно сериализовать данные, которые не поддерживаются стандартным модулем json?

Если нужно сериализовать объекты, которые по умолчанию не поддерживаются модулем json, то есть несколько вариантов:

— Реализовать методы __getattr__ и __setattr__ в классе объекта, чтобы преобразовать его в словарь, который уже можно сериализовать в JSON.

— Использовать декоратор dataclass из модуля dataclasses для автоматической генерации методов сериализации.

— Создать собственный класс-наследник json.JSONEncoder и переопределить метод default(), чтобы указать как сериализовать нестандартные объекты.

— Использовать библиотеку marshmallow для создания схем сериализации/десериализации сложных объектов в JSON.

— Преобразовать объекты в dict или list вручную перед сериализацией с помощью методов объекта или отражения (reflection).

— Использовать другой формат сериализации, например YAML или MessagePack, который может поддерживать произвольные типы.

Читать полностью…

Senior Python Developer

Атрибут __all__

Атрибут __all__ используется для контроля того, какие элементы модуля экспортируются при импорте с помощью from module import *.
Этот атрибут должен содержать список имен, которые будут экспортированы.

Если __all__ не определен, то при импорте будут экспортированы все имена, не начинающиеся с _.

Использование __all__ позволяет явно указать автору модуля, какие части модуля являются публичным API, а какие — внутренней реализацией.
Это способствует лучшей структуре кода и предотвращает неожиданный экспорт внутренних элементов модуля.

Проще говоря, __all__ — это простой механизм контроля области видимости при импорте. Он помогает организовать чистый публичный интерфейс модуля.

#это_база

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
В чем отличие тредов от мультипроцессинга?

Главное отличие заключается в разделении памяти. Процессы независимы друг от друга, имеют раздельные адресные пространства, идентификаторы, ресурсы.

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

Читать полностью…

Senior Python Developer

Библиотека igraph

igraph предназначена для работы с графами и сетями. Она позволяет строить, анализировать и визуализировать графы.

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

Основные возможности igraph — генерация случайных и классических графов, вычисление различных метрик (степени вершин, диаметра графа и т. д.), поиск сообществ и кластеров.

Читать полностью…

Senior Python Developer

Привет! Мы в МТС активно поддерживаем ИТ-сообщество в России и запускаем всероссийскую олимпиаду по программированию с главным призом в 3 млн рублей.

Для кого? Для школьников, студентов и действующих ИТ-специалистов.

Что будет? Блок онлайн-заданий, митапы и мастер-классы, общение в закрытом Telegram-канале и финальный очный тур с программированием на скорость. Когда олимпиада завершится, мы создадим True Tech Community, где будем делиться полезными и эксклюзивными материалами для разработчиков.

А что еще? Финалистов ждет afterparty, фестиваль технологий, интерактив, квесты, карьерные стенды, где лучшие специалисты смогут получить оффер от МТС.

Регистрация уже открыта! Подробности по ссылке. Ждем тебя!

Реклама. ПАО "МТС". ИНН 7740000076. erid: LjN8KKQwJ

Читать полностью…

Senior Python Developer

Метод isspace()

Метод isspace() проверяет, является ли символ пробельным.

Пробельными символами считаются:
— Пробел (' ').
— Табуляция ('\t').
— Перевод строки ('\n').
— Перевод каретки ('\r').
— Прочие unicode символы, определяемые как пробелы.

isspace() возвращает True, если символ пробельный, и False в противном случае.
Этот метод удобно использовать для проверки и обработки строк.

#это_база

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Что такое объект первого класса?

Объект первого класса (first-class object) — это объект, который можно использовать точно так же, как и любые другие объекты в этом языке.

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

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

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Что такое замыкание?

Замыкание (closure) — это функция, которая запоминает значения переменных из области видимости, в которой она была создана, и может получить к ним доступ, даже если она будет вызвана за пределами этой области видимости.

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

Обычно замыкания используются, если нужно:
— Создать функцию с сохранением некоторого состояния между вызовами.
— Избежать использования глобальных переменных и повысить инкапсуляцию.
— Частично применить функцию без вызова (создание другой функции).

В Python замыкания реализуются элегантно и просто с помощью вложенных функций. Это мощный механизм, позволяющий писать короткий и чистый код.

Читать полностью…

Senior Python Developer

Бесплатный вебинар Python: Как стать востребованным backend разработчиком.

 Когда: 27 сентября в 19:00 мск

Что узнаете за 2 часа:
✔️Что нужно, чтобы найти первую работу разработчиком.
✔️Какие знания нужны для входа в профессию.
✔️Что нужно, чтобы найти первую работу разработчиком.
✔️Какому бизнесу нужны Python-разработчики и почему Python хорош именно для веб-разработки.

А еще вас ждет Q&A сессия и увлекательный квиз!

🎁 Всем, кто зарегистрировался - Гайд «Как заговорить на сленге IT-специалистов», а каждому участнику - Карта компетенций Python-разработчика.

Реклама. ООО "ХЕКСЛЕТ РУС". ИНН 7325174845. erid: LjN8KG5wv

Читать полностью…

Senior Python Developer

Как управлять состоянием системы через события?

Event-driven архитектура — концепция программирования, которая позволяет создавать сложные приложения, используя событийно-ориентированный подход. Так создаются распределенные системы, которые легко масштабируются и обладают высокой отказоустойчивостью.
 
Начните изучать эту технологию на бесплатном открытом уроке «Архитектурный подход Event Driven Architecture» от OTUS: https://otus.pw/qLOP/

На занятии рассмотрим:
✔️ взаимодействие сервисов на основе событий;
✔️ плюсы и минусы такого подхода;
✔️ сочетания событийного и синхронного взаимодействия;
✔️ паттерны проектирования событий;
✔️ подход Event Sourcing и CQRS.

Урок пройдёт 27 сентября в 20:00 мск в рамках курса «Microservice Architecture».

👩‍💻 Пройдите вступительное тестирование прямо сейчас и зарегистрируйтесь на событие: https://otus.pw/qLOP/

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8K1Hzp

Читать полностью…

Senior Python Developer

Функции, поддерживающие только именованные аргументы (kwargs)

**kwargs (keyword arguments) — это способ передачи произвольного количества именованных аргументов в функцию.

В функциях после позиционных и обычных именованных аргументов указывают параметр **kwargs.

В kwargs передаются аргументы в виде ключ-значение. Внутри функции kwargs становится словарем, где ключи — имена аргументов, значения — значения аргументов.
Благодаря этому через kwargs можно передать любое количество дополнительных аргументов в функцию.

Если одновременно используются *args и **kwargs, то в вызове сначала указываются *args.

#это_база

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Что такое фабрика декораторов?

Фабрика декораторов — это особая разновидность функции высшего порядка, которая возвращает декоратор вместо прямого результата. Главное отличие фабрики декораторов от обычного декоратора в том, что она принимает аргументы, которые могут конфигурировать логику декоратора.

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

Главные преимущества фабрик декораторов — это возможность абстрагироваться от конкретики реализации, избежать дублирования кода и создавать интуитивный API для декораторов с настройками.

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Как Python ищет модули при импорте?

При импорте модулей интерпретатор следует определенному алгоритму поиска:

1. Сначала проверяются встроенные модули, которые поставляются в составе самого Python.

2. Затем по порядку просматриваются пути, перечисленные в sys.path — глобальной переменной, которая содержит список каталогов для поиска модулей.
По умолчанию в sys.path входят: текущий рабочий каталог скрипта, PYTHONPATH — каталоги указанные в этой переменной окружения, каталоги стандартной библиотеки Python.

3. Если модуль не найден — генерируется исключение ImportError.

Читать полностью…

Senior Python Developer

​​Все для изучения Data Science

Собрали все что потребуется для изучения data science

👉 Логово Дата Сайнтиста | Machinelearning [ru] - канал для изучения data science и machinelearning

👉 Логово питониста | Python - канал для изучения python и его аспектов связанных с data science.

Добро пожаловать!

Читать полностью…

Senior Python Developer

🔥 Мы в Yandex for Developers запускаем четыре новых канала для разработчиков

Теперь Yandex for — это целая семья телеграм-каналов по разным направлениям: фронтенд, бэкенд, мобильная разработка и ML.

В каждом из них мы будем рассказывать всё о жизни определённого комьюнити инженеров внутри Яндекса — начиная с анонсов всех стековых мероприятий и заканчивая техническими подборками от разработчиков, интервью с инженерами и полезной информацией по найму. А в этом большом телеграм-канале мы продолжим рассказывать про главные события Яндекса для разработчиков, уже не боясь немножечко поднадоесть вам.

Давайте обсуждать технологии, знакомиться и развивать сообщество инженеров:

➡️ Yandex for Mobile

➡️ Yandex for Frontend

➡️ Yandex for Backend

➡️ Yandex for ML

В общем, переходите на наши каналы — всё самое интересное только начинается!

Подписывайтесь 👉 @Yandex4Developers

Реклама. ООО "Яндекс". erid: 2VtzqvyJJuX

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Что такое сериализация?

Сериализация — это процесс преобразования объектов в поток байтов для сохранения или передачи.
Это позволяет сохранить состояние объекта в файл или базу данных и восстановить его позже.

Основные преимущества сериализации:
— Сохранение и восстановление объектов между сессиями программы.
— Передача объектов по сети между приложениями и машинами.
— Преобразование объектов в формат хранения, независимый от платформы.

Читать полностью…

Senior Python Developer

Логические all и any

Встроенные функции all() и any(), которые применяются к последовательностям (спискам, кортежам и т. д.) и возвращают bool значение.

all(iterable) — возвращает True, если все элементы iterable истинны (или iterable пуст).
any(iterable) — возвращает True, если хотя бы один элемент iterable истинен.

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

Важные моменты:
— Для пустых iterable all() вернёт True, а any()False.
— Элемент считается ложным, если его bool() равен False.
— Функции останавливаются при первом ложном (для all) или истинном (для any) элементе.

#это_база

Читать полностью…
Subscribe to a channel