ar
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 أيام
أرشيف المشاركات
Photo unavailableShow in Telegram
Plumbum Plumbumэто библиотека, предназначенная для упрощения работы с командной строкой и вызова внешних программ. Она упрощает автоматизацию задач, которые требуют вызова командной строки из\ кода. Это может быть запуск скриптов, утилит, вызов программ для обработки данных и т. д. Основные возможности библиотеки: — Удобный синтаксис для запуска команд и программ из Python кода. Позволяет вызывать команды командной строки так же просто, как обычные функции. — Автоматическое формирование командной строки. Можно передавать аргументы и параметры в виде обычных переменных, Plumbum сам сформирует командную строку. — Перенаправление ввода/вывода. Поддержка стандартных операторов Unix для работы с потоками данных. — Проверка кодов возврата и обработка ошибок. — Локальное или удаленное выполнение. Возможность запускать команды как локально, так и по SSH на удаленных хостах.
إظهار الكل...
Photo unavailableShow in 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, который может поддерживать произвольные типы.
إظهار الكل...
Photo unavailableShow in 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 для декораторов с настройками.
إظهار الكل...
Photo unavailableShow in Telegram
Функции, поддерживающие только именованные аргументы (kwargs) **kwargs (keyword arguments) — это способ передачи произвольного количества именованных аргументов в функцию. В функциях после позиционных и обычных именованных аргументов указывают параметр **kwargs. В kwargs передаются аргументы в виде ключ-значение. Внутри функции kwargs становится словарем, где ключи — имена аргументов, значения — значения аргументов. Благодаря этому через kwargs можно передать любое количество дополнительных аргументов в функцию. Если одновременно используются *args и **kwargs, то в вызове сначала указываются *args. #это_база
إظهار الكل...
Photo unavailableShow in Telegram
Атрибут __slots__ Этот атрибут позволяет ограничить создание новых атрибутов в экземплярах класса. __slots__ определяется как список имен атрибутов в определении класса. Экземпляры класса с __slots__ могут иметь атрибуты только с именами, определенными в __slots__. Попытка создать новый атрибут приведет к ошибке. Использование __slots__ экономит память, так как экземпляры не создают словарь __dict__ для атрибутов. __slots__ не наследуются, для каждого подкласса нужно определять свои слоты. Атрибут полезен, когда заранее известны все атрибуты класса и не нужна динамическая задача новых. Например, для простых данных или immutable классов. #это_база
إظهار الكل...
Photo unavailableShow in Telegram
collections.MutableMapping Collections.MutableMapping — это интерфейс, который представляет изменяемое отображение (словарь). Он наследуется от интерфейса Mapping и добавляет методы для изменения отображения, такие как __setitem__, __delitem__ и clear. Основное преимущество в использовании MutableMapping — это возможность передавать экземпляры такого класса в любое API, ожидающее словарь. Например, во многих функциях в стандартной библиотеке есть параметры типа dict. Если создать класс, реализующий MutableMapping, его экземпляры можно будет передавать в такие функции.
إظهار الكل...
Photo unavailableShow in Telegram
collections.Counter Collections.Counter — это класс, предназначенный для подсчета хешей (hashable объектов). Он позволяет удобно и эффективно подсчитывать вхождения элементов в какой-либо последовательности. Основное отличие Counter от обычного словаря в том, что он не выбрасывает исключение, если ключ не существует, а просто создает новый ключ со значением 0. Это упрощает подсчет элементов. Counter может принимать на вход любую итерируемую последовательность (список, кортеж и т.д.). Основные способы использования Counter: — Подсчет слов или букв в тексте. — Подсчет появления элементов в списке или итераторе. — Нахождение наиболее часто встречающихся элементов. — Использование при решении задач на вероятность и статистику.
إظهار الكل...
#вопросы_с_собеседований Что такое замыкание? Замыкание (closure) — это функция, которая запоминает значения переменных из области видимости, в которой она была создана, и может получить к ним доступ, даже если она будет вызвана за пределами этой области видимости. Ключевым моментом является то, что замыкание запоминает ссылки на переменные, а не сами значения. Это позволяет обращаться к актуальным значениям переменных даже после того, как функция, создавшая замыкание, завершила работу. Обычно замыкания используются, если нужно: — Создать функцию с сохранением некоторого состояния между вызовами. — Избежать использования глобальных переменных и повысить инкапсуляцию. — Частично применить функцию без вызова (создание другой функции). В Python замыкания реализуются элегантно и просто с помощью вложенных функций. Это мощный механизм, позволяющий писать короткий и чистый код.
إظهار الكل...
Photo unavailableShow in Telegram
Trio Trio — это библиотека асинхронного программирования для Python, которая упрощает написание высокопроизводительных и масштабируемых приложений. Она основана на модели "async/await" и предоставляет ряд инструментов для работы с асинхронными операциями, такими как сетевые запросы, обработка файлов и I/O. #для_продвинутых
إظهار الكل...
Photo unavailableShow in Telegram
PyJWT PyJWT — это библиотека Python для работы с JSON Web Tokens (JWT). JWT — это компактный формат для передачи информации между сторонами, позволяющий обеспечить безопасность и аутентификацию. #для_продвинутых
إظهار الكل...
Photo unavailableShow in Telegram
Функция vonmisesvariate Функция vonmisesvariate из модуля random в Python используется для генерации случайных чисел, подчиненных распределению фон Мизеса, также известному как круговое нормальное распределение или распределение Тихонова. Аргументы функции: mu: Среднее значение угла, выраженное в радианах в диапазоне от 0 до 2π. kappa: Параметр концентрации, который должен быть больше или равен 0. Чем больше значение kappa, тем более концентрируется распределение вокруг среднего значения. #для_продвинутых
إظهار الكل...
Photo unavailableShow in Telegram
uniformvariate uniformvariate – это функция из библиотеки numpy, которая используется для генерации случайных чисел из равномерного распределения. Синтаксис:
numpy.random.uniformvariate(low, high, size=None)
Параметры: low (float): Нижняя граница диапазона. high (float): Верхняя граница диапазона. size (int, optional): Размер возвращаемого массива. #для_продвинутых
إظهار الكل...
Photo unavailableShow in Telegram
ChainMap ChainMap — это инструмент из модуля collections, который позволяет объединить несколько словарей в один объект, доступный как единый словарь. Это удобно, когда вам нужно работать с несколькими словарями, представляющими разные области видимости или контексты, и вам нужно установить приоритеты доступа к данным. #для_продвинутых
إظهار الكل...
Photo unavailableShow in Telegram
Функция current_thread() Функция current_thread() из модуля threading в Python используется для получения объекта Thread, представляющего текущий поток выполнения. В Python 3.10 и более поздних версиях она возвращает: — «Идентификатор потока» текущего потока. Это ненулевое целое число. Его значение не имеет прямого смысла; оно предназначено как магическое число, которое можно использовать, например, для индексирования словаря потоко-специфичных данных. — Идентификаторы потоков могут быть переиспользованы, когда один поток завершается, а другой создается. #для_продвинутых
إظهار الكل...
Photo unavailableShow in Telegram
Функция statvfs Функция statvfs() используется для получения информации о файловой системе, содержащей указанный путь. Она возвращает объект класса os.statvfs_result, атрибуты которого представляют информацию о файловой системе. #для_продвинутых
إظهار الكل...
Photo unavailableShow in Telegram
Функция getweakrefcount() Функция weakref.getweakrefcount() в Python возвращает количество слабых ссылок и прокси-объектов, связанных с данным объектом. Синтаксис:
weakref.getweakrefcount(object)
Параметры: object: объект, для которого нужно узнать количество слабых ссылок и прокси-объектов. Возвращаемое значение: Целое число, представляющее количество слабых ссылок и прокси-объектов, связанных с объектом. #для_продвинутых
إظهار الكل...