Разъяснивший Python
8.16K subscribers
2.45K photos
40 videos
30 files
2.3K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
types.new_class()

types.new_class() позволяет динамически создавать новые классы во время выполнения программы. Это полезно для метапрограммирования, создания классов с динамическими атрибутами и автоматической генерации API.

Разъяснивший Python
asyncio.gather()

Метод asyncio.gather() из модуля asyncio позволяет запускать несколько асинхронных задач одновременно и ожидать их завершения. Это удобный инструмент для работы с конкурентным выполнением задач.

Разъяснивший Python
signal.set_wakeup_fd()

signal.set_wakeup_fd() позволяет отправлять сигналы в файловый дескриптор вместо стандартного обработчика сигналов. Это полезно для обработки сигналов в асинхронных приложениях.

Разъяснивший Python
Создаём "невидимый" Python-код!

Этот трюк позволяет прятать код в пустом файле, используя символы-заполнители, которые Python всё равно понимает!

Как это работает?
В начале кода вставлены невидимые символы Zero-Width Space (\u200B) и Zero-Width Non-Joiner (\u200C).
Python игнорирует эти символы, но они мешают текстовому редактору определить, что в файле что-то есть.
В итоге код выглядит пустым, но выполняется!

Где это можно использовать?
Шутки над коллегами — код как будто не существует, но выполняется.
Скрытие "пасхалок" в проектах.
Креативные соревнования по написанию странного кода.

Разъяснивший Python
🔥3
rich.print()

rich.print() — это удобный способ красиво выводить текст, таблицы и логи в терминал с поддержкой цветного форматирования. Библиотека rich делает консольные приложения более читаемыми и наглядными.

Разъяснивший Python
👍4
sys.call_tracing()

sys.call_tracing() позволяет выполнить функцию с заданными аргументами, включая трассировку вызовов, установленную через sys.settrace(). Это полезно для профилирования и отладки.

Разъяснивший Python
1
Анализ логов серверов

Данный код позволяет автоматически анализировать логи веб-серверов (например, Nginx, Apache). Ты сможешь выявлять подозрительные IP-адреса, DDoS-атаки, ошибки 500 и другие аномалии с помощью машинного обучения.

Ссылка на код

Разъяснивший Python
pathlib.Path.exists()

Метод pathlib.Path.exists() используется для проверки существования файла или директории. Это удобный способ работы с файловой системой в Python.

Разъяснивший Python
Запускаем Python-код… без Python!

Этот трюк позволяет выполнить Python-код, даже если интерпретатор Python не установлен в системе!

Как это работает?
Запрос отправляется на сервер с Python.
Сервер выполняет код и возвращает результат.
Ответ выводится в консоль браузера.

Где это можно использовать?
Когда на ПК нет Python, а код запустить нужно.
Быстрая проверка Python-кода прямо в браузере.
Создание веб-приложений с серверной логикой на Python.

Разъяснивший Python
🔥1
Mypy — инструмент для статической типизации Python-кода, который помогает находить ошибки ещё до запуска программы. Теперь Python становится чуть ближе к строгим языкам, как Java или C#, но при этом остаётся таким же гибким!

Что даёт Mypy?

Ловит ошибки типов на этапе написания кода;
Улучшает читаемость за счёт явных аннотаций;
Работает без потерь в скорости (Python остаётся динамическим!);
Интегрируется с редакторами и CI/CD.

Установка:

$ pip install mypy


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

def add(x: int, y: int) -> int:
return x + y

print(add(5, 3))
print(add("5", 3)) # ОШИБКА! Mypy это увидит.


Как проверить код?

$ mypy script.py


Если в коде есть ошибки типов, Mypy сразу их покажет и поможет избежать багов!

Идеально для больших проектов, где нужно поддерживать чистый и надёжный код.

GitHub/Инструкция

Разъяснивший Python
Антипаттерн недели: Игнорирование finally при работе с ресурсами

В Python важно гарантированно освобождать ресурсы (файлы, соединения, сокеты). Если этого не делать, возможны утечки памяти и зависание программы.

Используйте блок finally или конструкцию with для автоматического управления ресурсами.

Разъяснивший Python
loguru.logger

loguru.logger — это мощный и удобный логгер, который упрощает логирование в Python. Он поддерживает цветной вывод, автоматическое форматирование и удобное управление логами.

Разъяснивший Python
pathlib.Path.resolve()

Path.resolve() из модуля pathlib позволяет получить абсолютный путь к файлу или директории, автоматически обрабатывая символические ссылки и относительные пути. Это удобный способ работы с файловой системой в Python.

Разъяснивший Python
contextlib.suppress()

contextlib.suppress() позволяет временно подавлять определённые исключения в блоке кода. Это удобная альтернатива try-except, если нам не нужно обрабатывать ошибку, а просто игнорировать её.

Разъяснивший Python
Код, который ускоряет сам себя!

Этот трюк позволяет Python-коду динамически оптимизировать свою работу, анализируя скорость выполнения и заменяя медленные части на более быстрые!

Как это работает?
Код запускает медленную функцию и измеряет время её работы.
Если код ещё не оптимизирован, он перезаписывает сам себя, заменяя медленный вызов на более быстрый.
При следующем запуске скрипт уже работает быстрее!
Где это можно использовать?
Автоматическая оптимизация кода.
Обучение Python-разработчиков динамическому изменению кода.
Создание самосовершенствующихся программ.

Разъяснивший Python
💩1
Процентиль

Процентиль — это значение, ниже которого находится определённый процент наблюдений в наборе данных. Например, 75-й процентиль — это значение, ниже которого находится 75% данных. В данном примере продемонстрировано нахождение процентиля.

Разъяснивший Python
contextlib.nullcontext()

contextlib.nullcontext() создаёт пустой контекстный менеджер, который не выполняет никаких действий. Это полезно, когда нужно условно использовать with, но в некоторых случаях контекстный менеджер не требуется.

Разъяснивший Python
Корреляция

Корреляция — это статистическая мера, показывающая взаимосвязь между двумя переменными. Она измеряется коэффициентом корреляции, который может принимать значения от -1 до 1.

Значение 1 говорит о положительной линейной зависимости (чем больше X, тем больше Y). Значение -1 говорит об отрицательной линейной зависимости (чем больше X, тем меньше Y). Значение 0 означает отсутствие линейной зависимости.

Разъяснивший Python
👍2
Как быстро понять, что делает незнакомый код в Python? (ч.1)

Когда ты только начинаешь изучать Python, иногда встречаешь незнакомый код и не понимаешь, что он делает. Вот быстрый способ разобраться!
Используем help()
Встроенная функция help() показывает описание модуля, функции или класса.

Совет: Если help() выводит слишком много текста, нажми q, чтобы выйти.

Разъяснивший Python
Как быстро отладить Python-код без принтов?

Когда новички ищут ошибки в коде, они часто пишут кучу print(), чтобы понять, что происходит. Но есть лучший способ!

Используем breakpoint()
С версии Python 3.7+ есть встроенная команда breakpoint(), которая останавливает выполнение кода и позволяет исследовать переменные в режиме отладки.

После запуска можно вводить команды прямо в консоли! Например:

print(a) – узнать значение переменной a.
print(b) – проверить значение b.
continue – продолжить выполнение кода.
Лучше, чем десятки print()
Работает прямо в коде без доп. инструментов

Разъяснивший Python
👍3