dataclasses.astuple()
Разъяснивший Python
dataclasses.astuple()
преобразует объект dataclass в неизменяемый кортеж, что удобно для сериализации и работы с неизменяемыми структурами.Разъяснивший Python
Глобально уникальный идентификатор в Python
Стандартный модуль uuid — быстрый и простой способ сгенерировать UUID (universally unique identifier, глобально уникальный идентификатор).
Так мы создаём случайное 128-битное число, которое почти наверняка будет уникальным.
Существует более 2¹²² возможных UUID. Это более 5 ундециллионов или 5,000,000,000,000,000,000,000,000,000,000,000,000.
Вероятность нахождения дубликатов в заданном наборе крайне мала. Даже при наличии триллиона UUID вероятность того, что среди них есть дубликат, гораздо меньше, чем один к миллиарду.
Разъяснивший Python
Стандартный модуль uuid — быстрый и простой способ сгенерировать UUID (universally unique identifier, глобально уникальный идентификатор).
Так мы создаём случайное 128-битное число, которое почти наверняка будет уникальным.
Существует более 2¹²² возможных UUID. Это более 5 ундециллионов или 5,000,000,000,000,000,000,000,000,000,000,000,000.
Вероятность нахождения дубликатов в заданном наборе крайне мала. Даже при наличии триллиона UUID вероятность того, что среди них есть дубликат, гораздо меньше, чем один к миллиарду.
Разъяснивший Python
Антипаттерн недели: Ловушка с оператором
В Python оператор
Используйте
Разъяснивший Python
is
при сравнении строкВ Python оператор
is
проверяет, ссылаются ли две переменные на один и тот же объект в памяти, а не равны ли их значения. Это может приводить к неожиданным ошибкам при сравнении строк.Используйте
==
для сравнения значений строк, а не is
.Разъяснивший Python
Создание самоуничтожающегося Python-скрипта!
Этот код удаляет себя после выполнения, оставляя систему без следов!
Как это работает?
Скрипт выполняет свои задачи.
Определяет своё местоположение в файловой системе.
Удаляет себя после выполнения.
Где это можно использовать?
Создание временных скриптов для автоматизации.
Тестирование файлов без необходимости ручного удаления.
Написание скриптов-«призраков», которые исчезают после работы.
Разъяснивший Python
Этот код удаляет себя после выполнения, оставляя систему без следов!
Как это работает?
Скрипт выполняет свои задачи.
Определяет своё местоположение в файловой системе.
Удаляет себя после выполнения.
Где это можно использовать?
Создание временных скриптов для автоматизации.
Тестирование файлов без необходимости ручного удаления.
Написание скриптов-«призраков», которые исчезают после работы.
Разъяснивший Python
❤🔥1
sys._current_frames()
Разъяснивший Python
sys._current_frames()
позволяет получить стеки вызовов всех активных потоков в программе. Это полезно для отладки многопоточных приложений.Разъяснивший Python
inspect.getgeneratorstate()
Разъяснивший Python
inspect.getgeneratorstate()
позволяет определить текущее состояние генератора. Это полезно при отладке и анализе работы генераторов в Python, чтобы понимать, активен ли генератор, завершён или ожидает ввода.Разъяснивший Python
sys.setswitchinterval()
Разъяснивший Python
sys.setswitchinterval()
позволяет управлять частотой переключения потоков в Python, изменяя временной интервал между переключениями контекста. Это полезно для настройки многопоточных программ.Разъяснивший Python
inspect.currentframe()
Разъяснивший Python
inspect.currentframe()
позволяет получить текущий стек вызовов и информацию о выполняемом коде. Это полезно для отладки, логирования и анализа исполнения программы.Разъяснивший Python
Объединение списков без цикла
Как бы вы решили задачу объединения списков разной длины без обхода элементов цикла?
Пусть и менее краткий, но более эффективный способ – применение модуля
Заметим, что при работе с последовательностями многие полезные решения находятся в модулях стандартной библиотеки
Разъяснивший Python
Как бы вы решили задачу объединения списков разной длины без обхода элементов цикла?
Пусть и менее краткий, но более эффективный способ – применение модуля
itertools
Заметим, что при работе с последовательностями многие полезные решения находятся в модулях стандартной библиотеки
collections
(контейнерные структуры данных) и itertools
(операции над последовательностями). Внимательное прочтение документации модулей освободит вас от многих часов придумывания собственных «велосипедов».Разъяснивший Python
Запускаем код, спрятанный в изображении!
Этот лайфхак позволяет прятать Python-код в PNG-картинке и запускать его прямо из неё!
Как это работает?
Берём картинку и вписываем код в её пиксели, меняя последний бит цвета.
Сохраняем картинку, которая выглядит как обычное изображение.
Читаем картинку, достаём скрытый код и запускаем его!
Где это можно использовать?
Передача скрытых скриптов через изображения.
Прятать код в файлах для креативного программирования.
Эксперименты с техникой стеганографии.
Разъяснивший Python
Этот лайфхак позволяет прятать Python-код в PNG-картинке и запускать его прямо из неё!
Как это работает?
Берём картинку и вписываем код в её пиксели, меняя последний бит цвета.
Сохраняем картинку, которая выглядит как обычное изображение.
Читаем картинку, достаём скрытый код и запускаем его!
Где это можно использовать?
Передача скрытых скриптов через изображения.
Прятать код в файлах для креативного программирования.
Эксперименты с техникой стеганографии.
Разъяснивший Python
types.new_class()
Разъяснивший Python
types.new_class()
позволяет динамически создавать новые классы во время выполнения программы. Это полезно для метапрограммирования, создания классов с динамическими атрибутами и автоматической генерации API.Разъяснивший Python
asyncio.gather()
Метод
Разъяснивший Python
Метод
asyncio.gather()
из модуля asyncio
позволяет запускать несколько асинхронных задач одновременно и ожидать их завершения. Это удобный инструмент для работы с конкурентным выполнением задач.Разъяснивший Python
signal.set_wakeup_fd()
Разъяснивший Python
signal.set_wakeup_fd()
позволяет отправлять сигналы в файловый дескриптор вместо стандартного обработчика сигналов. Это полезно для обработки сигналов в асинхронных приложениях.Разъяснивший Python
Создаём "невидимый" Python-код!
Этот трюк позволяет прятать код в пустом файле, используя символы-заполнители, которые Python всё равно понимает!
Как это работает?
В начале кода вставлены невидимые символы Zero-Width Space (\u200B) и Zero-Width Non-Joiner (\u200C).
Python игнорирует эти символы, но они мешают текстовому редактору определить, что в файле что-то есть.
В итоге код выглядит пустым, но выполняется!
Где это можно использовать?
Шутки над коллегами — код как будто не существует, но выполняется.
Скрытие "пасхалок" в проектах.
Креативные соревнования по написанию странного кода.
Разъяснивший Python
Этот трюк позволяет прятать код в пустом файле, используя символы-заполнители, которые Python всё равно понимает!
Как это работает?
В начале кода вставлены невидимые символы Zero-Width Space (\u200B) и Zero-Width Non-Joiner (\u200C).
Python игнорирует эти символы, но они мешают текстовому редактору определить, что в файле что-то есть.
В итоге код выглядит пустым, но выполняется!
Где это можно использовать?
Шутки над коллегами — код как будто не существует, но выполняется.
Скрытие "пасхалок" в проектах.
Креативные соревнования по написанию странного кода.
Разъяснивший Python
🔥3
rich.print()
Разъяснивший Python
rich.print()
— это удобный способ красиво выводить текст, таблицы и логи в терминал с поддержкой цветного форматирования. Библиотека rich
делает консольные приложения более читаемыми и наглядными.Разъяснивший Python
👍4
sys.call_tracing()
Разъяснивший Python
sys.call_tracing()
позволяет выполнить функцию с заданными аргументами, включая трассировку вызовов, установленную через sys.settrace()
. Это полезно для профилирования и отладки.Разъяснивший Python
❤1
Анализ логов серверов
Данный код позволяет автоматически анализировать логи веб-серверов (например, Nginx, Apache). Ты сможешь выявлять подозрительные IP-адреса, DDoS-атаки, ошибки 500 и другие аномалии с помощью машинного обучения.
Ссылка на код
Разъяснивший Python
Данный код позволяет автоматически анализировать логи веб-серверов (например, Nginx, Apache). Ты сможешь выявлять подозрительные IP-адреса, DDoS-атаки, ошибки 500 и другие аномалии с помощью машинного обучения.
Ссылка на код
Разъяснивший Python
pathlib.Path.exists()
Метод
Разъяснивший Python
Метод
pathlib.Path.exists()
используется для проверки существования файла или директории. Это удобный способ работы с файловой системой в Python.Разъяснивший Python
Запускаем Python-код… без Python!
Этот трюк позволяет выполнить Python-код, даже если интерпретатор Python не установлен в системе!
Как это работает?
Запрос отправляется на сервер с Python.
Сервер выполняет код и возвращает результат.
Ответ выводится в консоль браузера.
Где это можно использовать?
Когда на ПК нет Python, а код запустить нужно.
Быстрая проверка Python-кода прямо в браузере.
Создание веб-приложений с серверной логикой на Python.
Разъяснивший Python
Этот трюк позволяет выполнить Python-код, даже если интерпретатор Python не установлен в системе!
Как это работает?
Запрос отправляется на сервер с Python.
Сервер выполняет код и возвращает результат.
Ответ выводится в консоль браузера.
Где это можно использовать?
Когда на ПК нет Python, а код запустить нужно.
Быстрая проверка Python-кода прямо в браузере.
Создание веб-приложений с серверной логикой на Python.
Разъяснивший Python
🔥1
Mypy — инструмент для статической типизации Python-кода, который помогает находить ошибки ещё до запуска программы. Теперь Python становится чуть ближе к строгим языкам, как Java или C#, но при этом остаётся таким же гибким!
Что даёт Mypy?
Ловит ошибки типов на этапе написания кода;
Улучшает читаемость за счёт явных аннотаций;
Работает без потерь в скорости (Python остаётся динамическим!);
Интегрируется с редакторами и CI/CD.
Установка:
Пример использования:
Как проверить код?
Если в коде есть ошибки типов, Mypy сразу их покажет и поможет избежать багов!
Идеально для больших проектов, где нужно поддерживать чистый и надёжный код.
GitHub/Инструкция
Разъяснивший Python
Что даёт 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