gram news
Senior Python Developer channel avatar

Senior Python Developer

@seniorpy

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

ProjectsRUProgramming

40,000subscribers

Open the Channel

Latest posts

  • Senior Python Developer

    23 Sept, 14:49

    🤖 Как спроектировать ИИ-агента, который работает с корпоративными данными и при этом остаётся управляемым?6 октября в Архитектурном клубе Яндекс 360 разберут архитектуру такого агента: оркестратор, инструменты, память, EVAL и наблюдаемость.Отдельно поговорят о том, как ограничивать автономность агента, оценивать качество поиска и выбора инструментов, а также не допускать утечек данных через индекс и кеш.🗓 6 октября, 17:00 МСК 💻 Онлайн, бесплатно→ Зарегистрироваться на эфире⁠
    Image from a post by Senior Python DeveloperImage from a post by Senior Python Developer
  • Senior Python Developer

    22 Sept, 20:35

    #вопросы_с_собеседований Как работает хэш-таблица?Принцип работы:— Элементы хэш-таблицы хранятся в виде пар ключ-значение. — Каждому ключу сопоставляется уникальный целочисленный индекс с помощью хэш-функции. — Этот индекс используется для прямого доступа к ячейке таблицы, в которой и хранится значение. — Если по одному индексу хэш-функции попадает несколько ключей, используется механизм разрешения коллизий (цепочки, открытая адресация). — Хэш-таблица динамически изменяет свой размер, чтобы оптимизировать память и время доступа.
  • Senior Python Developer

    21 Sept, 20:49

    LangChainLangChain — это библиотека, которая позволяет создавать цепочки обработки естественного языка (NLP).Основные возможности: — Создание конвейеров обработки текста. — Подключение различных модулей NLP (токенизация, лемматизация и т. д.). — Объединение моделей в единую цепочку. — Удобная настройка и отладка.Используется для: — Построения приложений для анализа текста на Python. — Быстрого прототипирования решений для обработки естественного языка. — Объединения разных библиотек NLP в одном workflow. — Упрощения процесса экспериментов с моделями обработки текста.В этом примере создается цепочка из двух моделей OpenAI — Curie и Babbage, а текст передается поочередно в каждую модель.
    Image from a post by Senior Python DeveloperImage from a post by Senior Python Developer
  • Senior Python Developer

    20 Sept, 20:55

    #вопросы_с_собеседований В каких случаях можно обработать SyntaxError?SyntaxError — это исключение, которое генерируется интерпретатором при обнаружении ошибки в синтаксисе кода.Обработать это исключение можно в следующих случаях:— При разборе и выполнении кода, сгенерированного пользователем в приложении (например, в песочнице). — При динамическом изменении и выполнении кода с помощью eval() или exec(). — В REPL оболочках для обработки ошибок в интерактивном режиме. — В инструментах для проверки и валидации кода на корректность синтаксиса. — В интерпретаторах и компиляторах для информирования пользователя об ошибке. — В системах автодополнения кода для обработки некорректного синтаксиса. — В средствах отладки и трассировки для выявления ошибок в выполняемом коде.
  • Senior Python Developer

    19 Sept, 19:06

    tell()Метод tell() используется для получения текущей позиции (смещения) при работе с файлами и файлоподобными объектами.При открытии файла указатель текущей позиции находится в начале. По мере чтения/записи он смещается. Чтобы узнать текущее значение этого смещения, применяется метод tell().Это позволяет: — Узнать размер файла, сравнив позицию после чтения с начальной. — Вернуться к определенной позиции с помощью seek(). — Отслеживать прогресс обработки больших файлов. — Получить позицию в строковых буферах и потоках байтов.Метод tell() возвращает текущую позицию в файле в байтах от начала.
    Image from a post by Senior Python DeveloperImage from a post by Senior Python Developer
  • Senior Python Developer

    18 Sept, 20:28

    raiseКонструкция raise используется для генерации исключений. Когда в коде происходит что-то непредвиденное или некорректное — можно сгенерировать исключение командой raise.Например: raise ValueError('Invalid value')Здесь мы генерируем исключение ValueError с сообщением об ошибке.После генерации исключения выполнение текущего кода прерывается и происходит переход в блок try/except для обработки этой ошибки. Если исключение не будет обработано — программа завершится с ошибкой.В этом примере функция calculate_discount проверяет входные данные. Если скидка меньше 0 или больше 100 — с помощью raise генерируется исключение ValueError с сообщением.
    Image from a post by Senior Python DeveloperImage from a post by Senior Python Developer
  • Senior Python Developer

    17 Sept, 20:40

    Оператор passОператор pass — это особая конструкция, которая не делает ничего. Она может применяться в следующих ситуациях:— Заглушка для незавершенных блоков кода. Если написано только определение функции или класса, но нет тела - можно вставить pass, чтобы код был допустимым синтаксически. — Пустые блоки в циклах. Вместо тела цикла можно написать pass, если на данном этапе нет необходимости выполнять какие-либо действия. — Пропускать блоки кода в условных конструкциях. Если в ветви if-else ничего делать не нужно, можно использовать pass. — Создание абстрактных базовых классов и заготовок методов, которые будут переопределены позже в подклассах. — Обозначение функций или классов, которые планируется реализовать в будущем.Как видно из примера, все числа от 0 до 9 выводятся кроме 5.#это_база
    Image from a post by Senior Python DeveloperImage from a post by Senior Python Developer
  • Senior Python Developer

    15 Sept, 20:54

    Тернарный операторТернарный оператор — это оператор, позволяющий записать условную конструкцию if-else в одну строку.Тернарный оператор часто используется для условного присваивания значений переменной, выбора между двумя вариантами в одну строку. Он позволяет сократить и упростить запись условных выражений. Однако не рекомендуется использовать вложенные конструкции, т. к. это ухудшает читаемость.В данном примере тернарный оператор используется: — Для вывода одной из двух фраз в зависимости от условия a > b. — Для присваивания переменной result одного из двух значений в зависимости от четности a.#это_база
    Image from a post by Senior Python DeveloperImage from a post by Senior Python Developer
  • Senior Python Developer

    14 Sept, 20:53

    #вопросы_с_собеседований Зачем нужен wraps?Декоратор functools.wraps используется для того, чтобы сохранить информацию о функции-оригинале при создании декоратора. Когда мы создаем декоратор, он заменяет оригинальную функцию на обернутую. При этом теряется информация о названии функции, docstring и другие атрибуты.Используя wraps, мы можем сохранить эти атрибуты. Таким образом декорированная функция будет выглядеть как оригинальная для программиста.Это полезно для отладки и понимания кода. Например, при просмотре стека вызовов будет видно оригинальное имя функции, а не имя декоратора. При использовании help() будет выведен нужный docstring.
  • Senior Python Developer

    13 Sept, 20:57

    #вопросы_с_собеседований Для чего могут применять конструкцию try finally без except?Конструкция try-finally без блока except может применяться в следующих случаях:— Для закрытия файлов после работы с ними, даже если произошла ошибка. — Для освобождения ресурсов, таких как сетевые соединения или блокировки. — Для отмены каких-либо длительных операций или процессов в случае прерывания работы программы. Например, отмена запущенных потоков. — Для логирования или уведомления о завершении блока кода, даже если в нем произошла ошибка. — Для выполнения необходимой логики по завершении работы блока кода вне зависимости от результата, например сброс счетчиков.
  • Senior Python Developer

    12 Sept, 20:34

    Переименование файлов в Pythonrename() — это функция из модуля os, которая позволяет переименовывать файлы и директории.Используется для переименования файлов и директорий на файловой системе. Принимает два аргумента - старое имя и новое имя и атомарно переименовывает файл за одну операцию.Также позволяет перемещать файлы между разными директориями.#это_база
    Image from a post by Senior Python DeveloperImage from a post by Senior Python Developer
  • Senior Python Developer

    11 Sept, 20:59

    whylogswhylogs — это библиотека для мониторинга и аудита машинного обучения. Она помогает делать ML системы более прозрачными, стабильными и надёжными за счёт постоянного мониторинга и аудита.Она используется для того, чтобы:— Отслеживать статистику и метрики моделей и данных в режиме реального времени.— Выявлять дрейф данных - изменения в распределении данных со временем.— Собирать примеры исключений и выбросов.— Проводить аудит моделей и данных в поисках проблем.— Генерировать автоматические отчёты и визуализации.— Интегрировать с MLflow, TensorBoard и другими инструментами.
    Image from a post by Senior Python DeveloperImage from a post by Senior Python Developer
  • Senior Python Developer

    11 Sept, 15:51

    Запрограммируй робота на Python и поборись за призовой фонд трека 7 500 000 руб на True Tech Champ 2026.Попробуй себя в треке по программированию роботов. Начать проще, чем кажется: зарегистрируйся, собери команду или объединись с другими участниками на платформе и пройди квалификационный этап до 13 сентября. В онлайн-симуляторе тебе предстоит запрограммировать робособаку для доставки груза через полосу препятствий. Количество попыток не ограничено, а еще тебя будет ждать серия обучающих вебинаров.Лучшие команды пройдут в финал и будут программировать реальных роботов на офлайн-полигоне 22 октября на большой сцене. Масштабный финал объединит борьбу за призовой фонд, выступления хедлайнеров, доклады спикеров и активности для всех гостей мероприятия.Рекомендуемые стеки: Go, Java, Python, C#, C++, JS.Успей зарегистрироваться и пройти квалификацию до 13 сентября.Erid: 2VSb5yHVG7k
  • Senior Python Developer

    10 Sept, 20:35

    Duck typing (утиная типизация)Duck typing — это концепция, позволяющая использовать объекты независимо от их типа, базируясь на их свойствах и методах.Основная идея — не проверять тип объекта напрямую, а пытаться использовать его так, как нам нужно.Преимущества:— Нет необходимости привязываться к конкретным классам и типам.— Код становится более гибким и менее связанным.— Легче расширять и изменять код, добавляя новые типы.— Упрощает полиморфизм.
    Image from a post by Senior Python DeveloperImage from a post by Senior Python Developer
  • Senior Python Developer

    9 Sept, 20:52

    Атрибуты объектовАтрибуты — это переменные, связанные с объектом класса и хранящие его данные. Они объявляются внутри класса, а доступ к атрибутам происходит через точку после объекта (object.attr). Бывают public, приватными (__attr) и защищенными (_attr). Публичные атрибуты доступны везде, приватные только в классе, защищенные в классе и дочерних.Значение по умолчанию None, если не задано другое.Атрибуты можно создать в конструкторе init() и изменить в методах класса, а новые атрибуты к объектам можно добавлять в рантайме.#это_база
    Image from a post by Senior Python DeveloperImage from a post by Senior Python Developer
  • Senior Python Developer

    8 Sept, 20:04

    Композиция (ассоциация) классовКомпозиция (ассоциация) классов — это способ связи объектов разных классов. Позволяет создавать сложные объекты из более простых. Один класс содержит объект другого класса как атрибут, при этом внутренний объект является частью внешнего.Внешний класс не наследует функционал внутреннего, в отличие от наследования, просто использует его.Композиция классов позволяет создавать сложные объекты из простых классов и подходит для моделирования реальных взаимосвязей.#это_база
    Image from a post by Senior Python DeveloperImage from a post by Senior Python Developer
  • Senior Python Developer

    8 Sept, 08:33

    Вы сталкиваетесь с блокировками в PostgreSQL при росте нагрузки? На открытом уроке OTUS разберём, как обеспечить высокую параллельность даже в высоконагруженных системах.8 сентября в 20:00 — вебинар «Борьба с блокировками в PostgreSQL: как достичь высокой параллельности при большой нагрузке». Вы изучите типы блокировок, инструменты диагностики deadlock‑ов, приёмы оптимизации запросов и архитектурные best practices. В программе — реальные кейсы из продакшена и стратегии проектирования систем, выдерживающих тысячи параллельных запросов.Урок проходит в преддверии старта курса «Высоконагруженные системы: архитектура и масштабирование». Все участники получат скидку на обучение.Запишитесь сейчас — усилите экспертизу и научитесь строить стабильные высокопроизводительные системы.👉 Записаться: https://otus.pw/lEhr/Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
    Image from a post by Senior Python DeveloperImage from a post by Senior Python Developer
  • Senior Python Developer

    7 Sept, 20:46

    #вопросы_с_собеседований Что такое и чем отличается 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. Они обладают расширенным функционалом и лучше взаимодействуют с другими объектами.
  • Senior Python Developer

    6 Sept, 19:06

    #вопросы_с_собеседований В чем отличие @foobar от @foobar()?@foobar и @foobar() — это разные способы применения декораторов.@foobar применяет декоратор без аргументов, а @foobar() применяет декоратор с аргументами. То есть @foobar() вызывает декоратор foobar, передавая ему аргументы, а затем результат (декорированная функция) применяется к функции.
  • Senior Python Developer

    4 Sept, 20:51

    LineaPyLineaPy — это библиотека для работы с временными рядами и анализа временных данных.Эта библиотека позволяет быстро решать типовые задачи анализа временных рядов без необходимости "изобретать велосипед". Она удобна для анализа временных данных в задачах прогнозирования, мониторинга, выявления сезонности, трендов и аномалий. Имеет интуитивный API и хорошую документацию.В этом примере мы получили прогнозные значения временного ряда на 5 периодов вперед с помощью модели ARIMA из LineaPy за считанные строки кода.
    Image from a post by Senior Python DeveloperImage from a post by Senior Python Developer