Разъяснивший Python – Telegram
Разъяснивший Python
7.68K subscribers
2.8K photos
40 videos
30 files
2.69K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

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

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

inspect.getgeneratorstate() позволяет определить текущее состояние генератора. Это полезно при отладке и анализе работы генераторов в Python, чтобы понимать, активен ли генератор, завершён или ожидает ввода.

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

sys.setswitchinterval() позволяет управлять частотой переключения потоков в Python, изменяя временной интервал между переключениями контекста. Это полезно для настройки многопоточных программ.

Разъяснивший Python
inspect.currentframe()

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

Разъяснивший Python
Объединение списков без цикла

Как бы вы решили задачу объединения списков разной длины без обхода элементов цикла?

Пусть и менее краткий, но более эффективный способ – применение модуля itertools

Заметим, что при работе с последовательностями многие полезные решения находятся в модулях стандартной библиотеки collections (контейнерные структуры данных) и itertools (операции над последовательностями). Внимательное прочтение документации модулей освободит вас от многих часов придумывания собственных «велосипедов».

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

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

Как это работает?
Берём картинку и вписываем код в её пиксели, меняя последний бит цвета.
Сохраняем картинку, которая выглядит как обычное изображение.
Читаем картинку, достаём скрытый код и запускаем его!
Где это можно использовать?
Передача скрытых скриптов через изображения.
Прятать код в файлах для креативного программирования.
Эксперименты с техникой стеганографии.

Разъяснивший Python
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 noscript.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