uk
Feedback
Senior Python Developer

Senior Python Developer

Відкрити в Telegram

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

Показати більше
2025 рік у цифрахsnowflakes fon
card fon
44 575
Підписники
Немає даних24 години
-907 днів
-55930 день
Архів дописів
Фото недоступнеДивитись в Telegram
Plumbum Plumbumэто библиотека, предназначенная для упрощения работы с командной строкой и вызова внешних программ. Она упрощает автоматизацию задач, которые требуют вызова командной строки из\ кода. Это может быть запуск скриптов, утилит, вызов программ для обработки данных и т. д. Основные возможности библиотеки: — Удобный синтаксис для запуска команд и программ из Python кода. Позволяет вызывать команды командной строки так же просто, как обычные функции. — Автоматическое формирование командной строки. Можно передавать аргументы и параметры в виде обычных переменных, Plumbum сам сформирует командную строку. — Перенаправление ввода/вывода. Поддержка стандартных операторов Unix для работы с потоками данных. — Проверка кодов возврата и обработка ошибок. — Локальное или удаленное выполнение. Возможность запускать команды как локально, так и по SSH на удаленных хостах.
Показати все...
Фото недоступнеДивитись в Telegram
Атрибут __all__ Атрибут __all__ используется для контроля того, какие элементы модуля экспортируются при импорте с помощью from module import *. Этот атрибут должен содержать список имен, которые будут экспортированы. Если __all__ не определен, то при импорте будут экспортированы все имена, не начинающиеся с _. Использование __all__ позволяет явно указать автору модуля, какие части модуля являются публичным API, а какие — внутренней реализацией. Это способствует лучшей структуре кода и предотвращает неожиданный экспорт внутренних элементов модуля. Проще говоря, __all__ — это простой механизм контроля области видимости при импорте. Он помогает организовать чистый публичный интерфейс модуля. #это_база
Показати все...
#вопросы_с_собеседований Что такое сериализация? Сериализация — это процесс преобразования объектов в поток байтов для сохранения или передачи. Это позволяет сохранить состояние объекта в файл или базу данных и восстановить его позже. Основные преимущества сериализации: — Сохранение и восстановление объектов между сессиями программы. — Передача объектов по сети между приложениями и машинами. — Преобразование объектов в формат хранения, независимый от платформы.
Показати все...
#вопросы_с_собеседований Что делать если нужно сериализовать данные, которые не поддерживаются стандартным модулем json? Если нужно сериализовать объекты, которые по умолчанию не поддерживаются модулем json, то есть несколько вариантов: — Реализовать методы __getattr__ и __setattr__ в классе объекта, чтобы преобразовать его в словарь, который уже можно сериализовать в JSON. — Использовать декоратор dataclass из модуля dataclasses для автоматической генерации методов сериализации. — Создать собственный класс-наследник json.JSONEncoder и переопределить метод default(), чтобы указать как сериализовать нестандартные объекты. — Использовать библиотеку marshmallow для создания схем сериализации/десериализации сложных объектов в JSON. — Преобразовать объекты в dict или list вручную перед сериализацией с помощью методов объекта или отражения (reflection). — Использовать другой формат сериализации, например YAML или MessagePack, который может поддерживать произвольные типы.
Показати все...
Фото недоступнеДивитись в Telegram
Argcomplete Argcompleteэто библиотека для автодополнения аргументов командной строки. Она позволяет легко добавить автодополнение для argparse в интерактивных оболочках (например, bash, zsh). Библиотека работает в разных оболочках (bash, zsh и др.) без изменения кода и обладает простой интеграцией — достаточно декорировать функцию argparse декоратором @argcomplete.register. Основные возможности argcomplete: — Автоматическое дополнение имен файлов и каталогов при вводе путей. — Предложение вариантов для аргументов на основе возможных значений, описанных через argparse. — Дополнение для подкоманд в приложениях с вложенной структурой команд.
Показати все...
#вопросы_с_собеседований Как Python ищет модули при импорте? При импорте модулей интерпретатор следует определенному алгоритму поиска: 1. Сначала проверяются встроенные модули, которые поставляются в составе самого Python. 2. Затем по порядку просматриваются пути, перечисленные в sys.path — глобальной переменной, которая содержит список каталогов для поиска модулей. По умолчанию в sys.path входят: текущий рабочий каталог скрипта, PYTHONPATH — каталоги указанные в этой переменной окружения, каталоги стандартной библиотеки Python. 3. Если модуль не найден — генерируется исключение ImportError.
Показати все...
#вопросы_с_собеседований Что такое фабрика декораторов? Фабрика декораторов — это особая разновидность функции высшего порядка, которая возвращает декоратор вместо прямого результата. Главное отличие фабрики декораторов от обычного декоратора в том, что она принимает аргументы, которые могут конфигурировать логику декоратора. Например, фабрика может принимать имя лог-файла, в который будет производиться запись при вызове декорируемой функции. Или уровень логирования вместо простой записи всех вызовов. Такой подход позволяет создавать переиспользуемые и гибко настраиваемые декораторы для решения разных задач. Главные преимущества фабрик декораторов — это возможность абстрагироваться от конкретики реализации, избежать дублирования кода и создавать интуитивный API для декораторов с настройками.
Показати все...
Фото недоступнеДивитись в Telegram
Функции, поддерживающие только именованные аргументы (kwargs) **kwargs (keyword arguments) — это способ передачи произвольного количества именованных аргументов в функцию. В функциях после позиционных и обычных именованных аргументов указывают параметр **kwargs. В kwargs передаются аргументы в виде ключ-значение. Внутри функции kwargs становится словарем, где ключи — имена аргументов, значения — значения аргументов. Благодаря этому через kwargs можно передать любое количество дополнительных аргументов в функцию. Если одновременно используются *args и **kwargs, то в вызове сначала указываются *args. #это_база
Показати все...
Фото недоступнеДивитись в Telegram
Атрибут __slots__ Этот атрибут позволяет ограничить создание новых атрибутов в экземплярах класса. __slots__ определяется как список имен атрибутов в определении класса. Экземпляры класса с __slots__ могут иметь атрибуты только с именами, определенными в __slots__. Попытка создать новый атрибут приведет к ошибке. Использование __slots__ экономит память, так как экземпляры не создают словарь __dict__ для атрибутов. __slots__ не наследуются, для каждого подкласса нужно определять свои слоты. Атрибут полезен, когда заранее известны все атрибуты класса и не нужна динамическая задача новых. Например, для простых данных или immutable классов. #это_база
Показати все...
Фото недоступнеДивитись в Telegram
collections.MutableMapping Collections.MutableMapping — это интерфейс, который представляет изменяемое отображение (словарь). Он наследуется от интерфейса Mapping и добавляет методы для изменения отображения, такие как __setitem__, __delitem__ и clear. Основное преимущество в использовании MutableMapping — это возможность передавать экземпляры такого класса в любое API, ожидающее словарь. Например, во многих функциях в стандартной библиотеке есть параметры типа dict. Если создать класс, реализующий MutableMapping, его экземпляры можно будет передавать в такие функции.
Показати все...
Фото недоступнеДивитись в Telegram
collections.Counter Collections.Counter — это класс, предназначенный для подсчета хешей (hashable объектов). Он позволяет удобно и эффективно подсчитывать вхождения элементов в какой-либо последовательности. Основное отличие Counter от обычного словаря в том, что он не выбрасывает исключение, если ключ не существует, а просто создает новый ключ со значением 0. Это упрощает подсчет элементов. Counter может принимать на вход любую итерируемую последовательность (список, кортеж и т.д.). Основные способы использования Counter: — Подсчет слов или букв в тексте. — Подсчет появления элементов в списке или итераторе. — Нахождение наиболее часто встречающихся элементов. — Использование при решении задач на вероятность и статистику.
Показати все...
#вопросы_с_собеседований Что такое замыкание? Замыкание (closure) — это функция, которая запоминает значения переменных из области видимости, в которой она была создана, и может получить к ним доступ, даже если она будет вызвана за пределами этой области видимости. Ключевым моментом является то, что замыкание запоминает ссылки на переменные, а не сами значения. Это позволяет обращаться к актуальным значениям переменных даже после того, как функция, создавшая замыкание, завершила работу. Обычно замыкания используются, если нужно: — Создать функцию с сохранением некоторого состояния между вызовами. — Избежать использования глобальных переменных и повысить инкапсуляцию. — Частично применить функцию без вызова (создание другой функции). В Python замыкания реализуются элегантно и просто с помощью вложенных функций. Это мощный механизм, позволяющий писать короткий и чистый код.
Показати все...
Фото недоступнеДивитись в Telegram
Trio Trio — это библиотека асинхронного программирования для Python, которая упрощает написание высокопроизводительных и масштабируемых приложений. Она основана на модели "async/await" и предоставляет ряд инструментов для работы с асинхронными операциями, такими как сетевые запросы, обработка файлов и I/O. #для_продвинутых
Показати все...
Фото недоступнеДивитись в Telegram
PyJWT PyJWT — это библиотека Python для работы с JSON Web Tokens (JWT). JWT — это компактный формат для передачи информации между сторонами, позволяющий обеспечить безопасность и аутентификацию. #для_продвинутых
Показати все...
Фото недоступнеДивитись в Telegram
Функция vonmisesvariate Функция vonmisesvariate из модуля random в Python используется для генерации случайных чисел, подчиненных распределению фон Мизеса, также известному как круговое нормальное распределение или распределение Тихонова. Аргументы функции: mu: Среднее значение угла, выраженное в радианах в диапазоне от 0 до 2π. kappa: Параметр концентрации, который должен быть больше или равен 0. Чем больше значение kappa, тем более концентрируется распределение вокруг среднего значения. #для_продвинутых
Показати все...
Фото недоступнеДивитись в Telegram
uniformvariate uniformvariate – это функция из библиотеки numpy, которая используется для генерации случайных чисел из равномерного распределения. Синтаксис:
numpy.random.uniformvariate(low, high, size=None)
Параметры: low (float): Нижняя граница диапазона. high (float): Верхняя граница диапазона. size (int, optional): Размер возвращаемого массива. #для_продвинутых
Показати все...
Фото недоступнеДивитись в Telegram
ChainMap ChainMap — это инструмент из модуля collections, который позволяет объединить несколько словарей в один объект, доступный как единый словарь. Это удобно, когда вам нужно работать с несколькими словарями, представляющими разные области видимости или контексты, и вам нужно установить приоритеты доступа к данным. #для_продвинутых
Показати все...
Фото недоступнеДивитись в Telegram
Функция current_thread() Функция current_thread() из модуля threading в Python используется для получения объекта Thread, представляющего текущий поток выполнения. В Python 3.10 и более поздних версиях она возвращает: — «Идентификатор потока» текущего потока. Это ненулевое целое число. Его значение не имеет прямого смысла; оно предназначено как магическое число, которое можно использовать, например, для индексирования словаря потоко-специфичных данных. — Идентификаторы потоков могут быть переиспользованы, когда один поток завершается, а другой создается. #для_продвинутых
Показати все...
Фото недоступнеДивитись в Telegram
Функция statvfs Функция statvfs() используется для получения информации о файловой системе, содержащей указанный путь. Она возвращает объект класса os.statvfs_result, атрибуты которого представляют информацию о файловой системе. #для_продвинутых
Показати все...
Фото недоступнеДивитись в Telegram
Функция getweakrefcount() Функция weakref.getweakrefcount() в Python возвращает количество слабых ссылок и прокси-объектов, связанных с данным объектом. Синтаксис:
weakref.getweakrefcount(object)
Параметры: object: объект, для которого нужно узнать количество слабых ссылок и прокси-объектов. Возвращаемое значение: Целое число, представляющее количество слабых ссылок и прокси-объектов, связанных с объектом. #для_продвинутых
Показати все...