ru
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
JPype JPype - это модуль, который позволяет взаимодействовать с кодом на Java из Python. Основные области применения JPype: - Доступ к библиотекам Java из Python. - Интеграция с существующим Java кодом. - Использование JVM из Python. В этом примере мы импортируем класс String из Java и создаем экземпляр этого класса. Затем вызываем метод toUpperCase() у объекта javaString. Таким образом из Python мы можем работать с объектами и вызывать методы Java. Результат работы программы: HELLO FROM JAVA!
Показать все...
#вопросы_с_собеседований Что такое отображение (mapping)? Отображение (mapping)это контейнер, который хранит пары ключ-значение. Отображения позволяют связывать ключи с значениями, чтобы можно было получить значение по ключу. Среди основных отображений: dict, set, namedtuple.
Показать все...
Фото недоступноПоказать в Telegram
dict.get() Метод dict.get() принимает два аргумента - ключ и значение по умолчанию, и позволяет получить значение по ключу из словаря. Если ключ присутствует в словаре, возвращается соответствующее значение. Если ключа нет, возвращается значение по умолчанию, вместо ошибки KeyError. #это_база
Показать все...
Фото недоступноПоказать в Telegram
Метод count() count() - простой и удобный способ получить число вхождений элемента в последовательности за линейное время. Полезен при подсчете статистики, анализе данных и других задачах. Метод принимает в качестве аргумента элемент, количество которого нужно посчитать и возвращает число - количество найденных вхождений элемента. Работает для списков, кортежей, строк. #это_база
Показать все...
Фото недоступноПоказать в Telegram
Fugue Fugue — это библиотека, которая используется для создания и оркестровки workflow машинного обучения. Она позволяет быстро создавать, тестировать и масштабировать ML приложения, автоматизируя рутинные этапы. Основные возможности: — Описание этапов workflow как отдельных функций. — Автоматическое определение зависимостей между функциями. — Планирование выполнения функций с учетом зависимостей. — Кэширование промежуточных результатов для оптимизации. — Распределенное выполнение на разных ядрах или машинах. В этом примере с помощью декоратора @FugueWorkflow() отмечены функции, которые будут этапами workflow. Fugue автоматически определит, что fit_model зависит от preprocess, а predict - от fit_model. При вызове функций Fugue учтёт эти зависимости и выполнит их в правильном порядке, кэшируя промежуточные результаты.
Показать все...
Фото недоступноПоказать в Telegram
Завершение программы sys.exit() это функция, которая позволяет завершить выполнение программы и возвратить код возврата операционной системе. Принимает один необязательный числовой аргумент — код возврата программы. По умолчанию это 0, что означает успешное завершение, а код возврата отличный от нуля сигнализирует об ошибке или нештатной ситуации. Используется для завершения программы в случае критической ошибки, когда продолжение работы невозможно и позволяет гибко управлять кодами возврата в зависимости от ситуации. #это_база
Показать все...
#вопросы_с_собеседований Что такое Diamond problem? Diamond problem - это проблема, возникающая при использовании множественного наследования. Суть проблемы заключается в том, что если есть два базовых класса A и B, от которых наследуется класс C, а классы A и B в свою очередь наследуются от общего предка D, то при обращении к членам класса D из объекта класса C возникает неоднозначность - непонятно, члены из какого класса использовать - A или B. В Python эта проблема решается с помощью механизма MRO (Method Resolution Order) - порядка разрешения методов, который однозначно определяет, какие методы какого класса должны вызываться.
Показать все...
Фото недоступноПоказать в Telegram
LineaPy LineaPyэто библиотека для работы с временными рядами и анализа временных данных. Эта библиотека позволяет быстро решать типовые задачи анализа временных рядов без необходимости "изобретать велосипед". Она удобна для анализа временных данных в задачах прогнозирования, мониторинга, выявления сезонности, трендов и аномалий. Имеет интуитивный API и хорошую документацию. В этом примере мы получили прогнозные значения временного ряда на 5 периодов вперед с помощью модели ARIMA из LineaPy за считанные строки кода.
Показать все...
#вопросы_с_собеседований В чем отличие @foobar от @foobar()? @foobar и @foobar() — это разные способы применения декораторов. @foobar применяет декоратор без аргументов, а @foobar() применяет декоратор с аргументами. То есть @foobar() вызывает декоратор foobar, передавая ему аргументы, а затем результат (декорированная функция) применяется к функции.
Показать все...
#вопросы_с_собеседований Что такое и чем отличается old-style от new-style classes? — Old-style классы наследуются непосредственно от объекта класса type. New-style классы наследуются от объекта класса object. — New-style классы поддерживают дополнительные возможности, например descriptors, properties, slots. В old-style классах они не работают. — В new-style классах метод init вызывается при наследовании, в отличие от old-style классов. — New-style классы предпочтительны, так как полностью поддерживают особенности ООП. Большинство библиотек требуют именно их. Рекомендуется использовать new-style классы, унаследованные от object. Они обладают расширенным функционалом и лучше взаимодействуют с другими объектами.
Показать все...
Фото недоступноПоказать в Telegram
Композиция (ассоциация) классов Композиция (ассоциация) классов — это способ связи объектов разных классов. Позволяет создавать сложные объекты из более простых. Один класс содержит объект другого класса как атрибут, при этом внутренний объект является частью внешнего. Внешний класс не наследует функционал внутреннего, в отличие от наследования, просто использует его. Композиция классов позволяет создавать сложные объекты из простых классов и подходит для моделирования реальных взаимосвязей. #это_база
Показать все...
Фото недоступноПоказать в Telegram
Атрибуты объектов Атрибуты — это переменные, связанные с объектом класса и хранящие его данные. Они объявляются внутри класса, а доступ к атрибутам происходит через точку после объекта (object.attr). Бывают public, приватными (__attr) и защищенными (_attr). Публичные атрибуты доступны везде, приватные только в классе, защищенные в классе и дочерних. Значение по умолчанию None, если не задано другое. Атрибуты можно создать в конструкторе init() и изменить в методах класса, а новые атрибуты к объектам можно добавлять в рантайме. #это_база
Показать все...
Фото недоступноПоказать в Telegram
Duck typing (утиная типизация) Duck typingэто концепция, позволяющая использовать объекты независимо от их типа, базируясь на их свойствах и методах. Основная идея — не проверять тип объекта напрямую, а пытаться использовать его так, как нам нужно. Преимущества: — Нет необходимости привязываться к конкретным классам и типам. — Код становится более гибким и менее связанным. — Легче расширять и изменять код, добавляя новые типы. — Упрощает полиморфизм.
Показать все...
Фото недоступноПоказать в Telegram
whylogs whylogsэто библиотека для мониторинга и аудита машинного обучения. Она помогает делать ML системы более прозрачными, стабильными и надёжными за счёт постоянного мониторинга и аудита. Она используется для того, чтобы: — Отслеживать статистику и метрики моделей и данных в режиме реального времени. — Выявлять дрейф данных - изменения в распределении данных со временем. — Собирать примеры исключений и выбросов. — Проводить аудит моделей и данных в поисках проблем. — Генерировать автоматические отчёты и визуализации. — Интегрировать с MLflow, TensorBoard и другими инструментами.
Показать все...
Фото недоступноПоказать в Telegram
Переименование файлов в Python rename() — это функция из модуля os, которая позволяет переименовывать файлы и директории. Используется для переименования файлов и директорий на файловой системе. Принимает два аргумента - старое имя и новое имя и атомарно переименовывает файл за одну операцию. Также позволяет перемещать файлы между разными директориями. #это_база
Показать все...
#вопросы_с_собеседований Для чего могут применять конструкцию try finally без except? Конструкция try-finally без блока except может применяться в следующих случаях: — Для закрытия файлов после работы с ними, даже если произошла ошибка. — Для освобождения ресурсов, таких как сетевые соединения или блокировки. — Для отмены каких-либо длительных операций или процессов в случае прерывания работы программы. Например, отмена запущенных потоков. — Для логирования или уведомления о завершении блока кода, даже если в нем произошла ошибка. — Для выполнения необходимой логики по завершении работы блока кода вне зависимости от результата, например сброс счетчиков.
Показать все...
#вопросы_с_собеседований Зачем нужен wraps? Декоратор functools.wraps используется для того, чтобы сохранить информацию о функции-оригинале при создании декоратора. Когда мы создаем декоратор, он заменяет оригинальную функцию на обернутую. При этом теряется информация о названии функции, docstring и другие атрибуты. Используя wraps, мы можем сохранить эти атрибуты. Таким образом декорированная функция будет выглядеть как оригинальная для программиста. Это полезно для отладки и понимания кода. Например, при просмотре стека вызовов будет видно оригинальное имя функции, а не имя декоратора. При использовании help() будет выведен нужный docstring.
Показать все...
Фото недоступноПоказать в Telegram
Тернарный оператор Тернарный оператор — это оператор, позволяющий записать условную конструкцию if-else в одну строку. Тернарный оператор часто используется для условного присваивания значений переменной, выбора между двумя вариантами в одну строку. Он позволяет сократить и упростить запись условных выражений. Однако не рекомендуется использовать вложенные конструкции, т. к. это ухудшает читаемость. В данном примере тернарный оператор используется: — Для вывода одной из двух фраз в зависимости от условия a > b. — Для присваивания переменной result одного из двух значений в зависимости от четности a. #это_база
Показать все...
Фото недоступноПоказать в Telegram
Оператор pass Оператор passэто особая конструкция, которая не делает ничего. Она может применяться в следующих ситуациях: — Заглушка для незавершенных блоков кода. Если написано только определение функции или класса, но нет тела - можно вставить pass, чтобы код был допустимым синтаксически. — Пустые блоки в циклах. Вместо тела цикла можно написать pass, если на данном этапе нет необходимости выполнять какие-либо действия. — Пропускать блоки кода в условных конструкциях. Если в ветви if-else ничего делать не нужно, можно использовать pass. — Создание абстрактных базовых классов и заготовок методов, которые будут переопределены позже в подклассах. — Обозначение функций или классов, которые планируется реализовать в будущем. Как видно из примера, все числа от 0 до 9 выводятся кроме 5. #это_база
Показать все...
Фото недоступноПоказать в Telegram
raise Конструкция raise используется для генерации исключений. Когда в коде происходит что-то непредвиденное или некорректное — можно сгенерировать исключение командой raise. Например:
raise ValueError('Invalid value')

Здесь мы генерируем исключение ValueError с сообщением об ошибке. После генерации исключения выполнение текущего кода прерывается и происходит переход в блок try/except для обработки этой ошибки. Если исключение не будет обработано — программа завершится с ошибкой. В этом примере функция calculate_discount проверяет входные данные. Если скидка меньше 0 или больше 100 — с помощью raise генерируется исключение ValueError с сообщением.
Показать все...