Python Backend | YeaHub
1.19K subscribers
158 photos
41 videos
6 files
250 links
Теория, подготовка к интервью и курсы для Python разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#Собес #bash
🤔 Как экспортировать переменную в Bash и зачем это нужно?

Чтобы сделать переменную доступной для всех запущенных процессов, используется export :
export VAR="Hello"

Теперь эта переменная доступна в дочерних процессах, например, в другом скрипте или командной оболочке.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
😬 pre-commit — ваш автоматический код-ревьюер.

Эта библиотека превращает Git-хуки в мощную систему контроля качества кода.

Вместо ручного запуска линтеров перед каждым комитом, pre-commit автоматически проверяет изменения на качество — будь то синтаксические ошибки в Python или форматирование SCSS-файлов.

GitHub
Документация

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
👋 Совет по Python:

Использование setdefault

Метод setdefault() позволяет заменить 4 строки традиционного кода, избавляя от необходимости использовать условие if и ручную инициализацию.

setdefault() чётко передаёт намерение: «Если ключ отсутствует, установить для него пустой список. Затем добавить элемент в список». Это одновременно делает код короче и понятнее

Есть ли причины использовать это вместо collections.defaultdict?


Хороший вопрос. Думаю, основное различие в том, что с setdefault можно указывать разное значение по умолчанию при каждом вызове, тогда как у defaultdict одно общее значение для всех отсутствующих ключей. Метод setdefault также удобен тем, что не требует импорта =)

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
❤️‍🔥 Наткнулся на библиотеку art — делает ASCII-арт из текста за секунды.

Простая установка:


pip install art


Пример использования:

from art import text2art

Art = text2art("art") # шрифт по умолчанию
print(Art)

Art_block = text2art("art", font='block', chr_ignore=True)
print(Art_block)

# Выведет крупный блок‑текст


Идеально для приветственных страничек или добавить декоративный вывод в CLI или логах

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
#Собес #bash
🤔 Как объявить переменную в Bash?

B Bash переменная объявляется без ключевого слова, просто через = без пробелов:
VAR=value

Значение переменной можно получить через $VAR .

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
📞 Аналогично Unix-пайпам, в Python можно строить цепочки функций, переопределяя метод __or__

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

Именно так LangChain реализует элегантные пайплайны вроде: chat_prompt | groq_model | output_parser

Пример:

class Pipe:
def __init__(self, func):
self.func = func

def __call__(self, x):
return self.func(x)

def __or__(self, other):
return self.__class__(lambda x: other(self(x)))


🟠Pipe — обёртка над функцией

🟠__or__ (|) позволяет комбинировать пайпами, как в Unix

🟠__call__ делает объект вызываемым, как обычную функцию

Теперь можно обернуть любые функции в Pipe и комбинировать их в цепочку:

double = Pipe(lambda x: x * 2)
square = Pipe(lambda x: x ** 2)

pipeline = double | square
print(pipeline(3)) # (3 * 2) ** 2 = 36


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😎 Я только сегодня узнал об этом трюке с GitHub

Просто введите repo.new в адресной строке браузера — и сразу откроется страница создания нового репозитория на GitHub.

Такой простой способ сэкономить время

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
🤓 Совет по Python: deque.maxlen

Знаете ли вы, что можно задать максимальную длину списка, используя deque из модуля collections?

Класс deque (двусторонняя очередь) из модуля collections поддерживает параметр maxlen, который устанавливает максимальный размер очереди. Когда очередь достигает этого размера, добавление новых элементов автоматически удаляет элементы с противоположного конца, реализуя поведение "первым пришёл — первым ушёл" (FIFO) с ограничением по размеру.

В приведённом примере deque имеет максимальную длину 3. При добавлении значения 4 удаляется 1, что делает такую структуру идеальной для реализации скользящего окна последних трёх элементов

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#Собес #bash
🤔 Что такое Bash shell?

Bash (Bourne Again Shell) - это командный интерпретатор, используемый в Unix и Linux. Он позволяет выполнять команды, автоматизировать задачи с помощью скриптов и управлять системой. Bash поддерживает переменные, управляющие конструкции (циклы, условия) и обработку командного вывода.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😵‍💫 Это что игра What It Prints?

Да, это онлайн-игра‑головоломка для разработчиков и студентов, где нужно угадать, что выведет код. Простая и увлекательная: показывается фрагмент, а вы должны определить его вывод

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
3
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
👨‍💻 Auto PY to EXE — это open-source инструмент для упаковки Python-проектов в исполняемые файлы, который гораздо проще в использовании, чем pyfuze

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

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

Инструмент кроссплатформенный, поддерживает Windows, macOS и Linux, а установка через pip максимально простая:

pip install auto-py-to-exe


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#полезное
📞 Использование контекстного менеджера как таймера

Большинство разработчиков ассоциируют контекстные менеджеры (with-выражение) только с работой с файлами. Но на самом деле этот паттерн решает более общую задачу.

Контекстные менеджеры идеально подходят для управления любыми ресурсами, у которых есть чёткий момент начала и завершения. Например:

🔵 File I/O
🔵 Сессии логирования
🔵 Транзакции в базе данных
🔵 Сетевые и БД-соединения
🔵 Замер производительности
🔵 Управление потоками и блокировками

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

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

Обычно контекстный менеджер реализуется как класс с методами __enter__ и exit

Но есть более лаконичный способ — использовать декоратор @contextmanager из модуля contextlib, чтобы писать генераторные менеджеры без лишнего шаблонного кода.

Пример как использовать контекстный менеджер как таймер прикрепил

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2
#Собес #networks
🤔 Какие бывают типы IP-адресов?

Существует четыре типа Р-адресов: публичные IP-адреса, частные ІР-адреса, статические IP-адреса и динамические IP-адреса. Они различаются по своей функции и поведению.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
😊 Топ-10 распространённых магических методов в Python

__init__(self) – Инициализация нового объекта

__str__(self) – Строковое представление

__repr__(self) – Представление для отладки

__len__(self) – Длина объекта

__getitem__(self, key) – Доступ к элементу по индексу/ключу

__setitem__(self, key, value) – Установка значения по индексу/ключу

__delitem__(self, key) – Удаление элемента по ключу

__eq__(self, other) – Проверка на равенство

__add__(self, other) – Поведение оператора сложения +

__call__(self, ...) – Делает экземпляр вызываемым как функция

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#полезное
👍 Совет по Python:

Функция locals()

Встроенная функция locals() возвращает словарь, представляющий текущую локальную таблицу символов.

Таблица символов — это структура, в которой Python хранит все имена (переменные, функции, классы и т.д.), доступные в определённой области видимости.

Когда locals() вызывается внутри функции, она возвращает словарь со всеми локальными переменными, определёнными в рамках этой функции.

В примере переменные z и x определены локально внутри функции. Переменная y = 20 является глобальной и не относится к области видимости my_func(). Поэтому locals() внутри my_func не включает y

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
#статьи
👋 Измерение покрытия UI-тестами

Для покрытия UI-тестами существуют отличный инструмент – ui-coverage-scenario-tool. Он используется для анализа и визуализации покрытия. В результате ты понимаешь, какие части интерфейса были протестированы, а какие нет. Благодаря данной статье ты освоишь новый инструмент.
Читать статью

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес #networks
🤔 Что такое протокол FTP?

FTP (File Transfer Protocol) - это сетевой протокол, используемый для передачи файлов между устройствами по Интернету с использованием модели клиент-сервер. Несмотря на то, что он заменяется более безопасными протоколами, такими как SFTP и SCP, FTP по-прежнему широко используется.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Pandas vs PySpark

Если ты работаешь с небольшими данными на ноутбуке или с большими объёмами на кластере — именно Pandas и PySpark лежат в основе современной аналитики данных.

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

Что внутри:
🟠 Удобный выбор, фильтрация и сортировка строк
🟠 Группировка, агрегации и join’ы без боли
🟠 Обработка пропущенных значений
🟠 Плавный перенос логики между Pandas и PySpark

Совет: если освоишь обе библиотеки — сможешь уверенно переключаться между небольшими проектами и масштабными пайплайнами.

И не забывай:

«В Pandas ты учишься ремеслу. В PySpark — масштабированию.»


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😵‍💫 Text-to-Speech нового уровня

Chatterbox — первый open-source TTS, готовый к продакшену.

🟠 Задержки менее 200 мс
🟠 Синтеза речи нулевого выстрела (zero-shot) на уровне SoTA
🟠 Управления эмоциями и выразительностью

Полностью open-source

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😴 Совет по Pytest:

Используйте @pytest.mark.skipif, чтобы условно пропускать тесты в зависимости от определённых условий — например, платформы, наличия зависимостей или значений переменных окружения

Декоратор @pytest.mark.skipif(...) указывает Pytest пропустить выполнение теста, если условие истинно.

В примере, тест пропускается, если используется Python версии ниже 3.9, потому что оператор объединения словарей (|) появился только в Python 3.9.

Аргумент reason сообщает причину пропуска, которая отображается в отчёте Pytest.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM