Python tricks | Хитрости Питона
5.62K subscribers
2.21K photos
26 videos
1 file
2.52K links
Здесь вы найдете лучшие практики и приёмы, которые используют опытные программисты.

Сотрудничество: @SIeep_Token

Мы на платформе: https://telegram.me/python_tricks

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Библиотека yt-dlp

yt-dlpэто библиотека и утилита командной строки для скачивания видео с YouTube и других сайтов.

Основные возможности и применение yt-dlp:
— Поддерживает скачивание видео, аудио, плейлистов, каналов и др с YouTube. Помимо этого работает с сотнями других сайтов — Vimeo, Facebook, ВКонтакте, TikTok и др. Позволяет скачивать контент практически отовсюду.
— Извлечение метаданных и обложек видео.
— Конвертация медиафайлов в другие форматы после скачивания.
— Поддержка прокси и лимитов скорости.
— Множество настроек для извлечения данных, именования файлов, пост-обработки и т.д.
— Удобная утилита командной строки и модуль Python для автоматизации.

🔗 Python tricks
Функции, поддерживающие только именованные аргументы (kwargs)

**kwargs (keyword arguments) — это способ передачи произвольного количества именованных аргументов в функцию.

В функциях после позиционных и обычных именованных аргументов указывают параметр **kwargs.

В kwargs передаются аргументы в виде ключ-значение. Внутри функции kwargs становится словарем, где ключи — имена аргументов, значения — значения аргументов.
Благодаря этому через kwargs можно передать любое количество дополнительных аргументов в функцию.

Если одновременно используются *args и **kwargs, то в вызове сначала указываются *args.

🔗 Python tricks
Атрибут __slots__

Этот атрибут позволяет ограничить создание новых атрибутов в экземплярах класса.

__slots__ определяется как список имен атрибутов в определении класса. Экземпляры класса с __slots__ могут иметь атрибуты только с именами, определенными в __slots__. Попытка создать новый атрибут приведет к ошибке.

Использование __slots__ экономит память, так как экземпляры не создают словарь __dict__ для атрибутов.

__slots__ не наследуются, для каждого подкласса нужно определять свои слоты.

Атрибут полезен, когда заранее известны все атрибуты класса и не нужна динамическая задача новых. Например, для простых данных или immutable классов.

🔗 Python tricks
collections.MutableMapping

Collections.MutableMapping — это интерфейс, который представляет изменяемое отображение (словарь).
Он наследуется от интерфейса Mapping и добавляет методы для изменения отображения, такие как __setitem__, __delitem__ и clear.

Основное преимущество в использовании MutableMapping — это возможность передавать экземпляры такого класса в любое API, ожидающее словарь.
Например, во многих функциях в стандартной библиотеке есть параметры типа dict. Если создать класс, реализующий MutableMapping, его экземпляры можно будет передавать в такие функции.

🔗 Python tricks
collections.Counter

Collections.Counter — это класс, предназначенный для подсчета хешей (hashable объектов).
Он позволяет удобно и эффективно подсчитывать вхождения элементов в какой-либо последовательности.

Основное отличие Counter от обычного словаря в том, что он не выбрасывает исключение, если ключ не существует, а просто создает новый ключ со значением 0. Это упрощает подсчет элементов.
Counter может принимать на вход любую итерируемую последовательность (список, кортеж и т.д.).

Основные способы использования Counter:
— Подсчет слов или букв в тексте.
— Подсчет появления элементов в списке или итераторе.
— Нахождение наиболее часто встречающихся элементов.
— Использование при решении задач на вероятность и статистику.

🔗 Python tricks
Метод isspace()

Метод isspace() проверяет, является ли символ пробельным.

Пробельными символами считаются:
— Пробел (' ').
— Табуляция ('\t').
— Перевод строки ('\n').
— Перевод каретки ('\r').
— Прочие unicode символы, определяемые как пробелы.

isspace() возвращает True, если символ пробельный, и False в противном случае.
Этот метод удобно использовать для проверки и обработки строк.

🔗 Python tricks
Метод id()

Метод id() возвращает уникальный идентификатор объекта.

Каждый объект в Python имеет свой идентификатор, который назначается при создании объекта. Этот идентификатор гарантированно уникален в пределах жизни объекта.

id() позволяет получить числовое представление идентификатора объекта. Это может быть полезно при отладке и тестировании программы.

🔗 Python tricks
Использование collections.defaultdict для работы с словарями

Модуль collections в Python предоставляет специальный тип словаря под названием defaultdict, который позволяет автоматически создавать значения для новых ключей. Это особенно полезно, когда вы работаете с подсчетами или группировкой данных, так как вам не нужно предварительно проверять, существует ли ключ в словаре.

Использование defaultdict значительно упрощает работу со словарями и помогает избежать ошибок, связанных с отсутствием ключей.

🔗 Python tricks
Использование functools.lru_cache для оптимизации производительности

В Python библиотека functools предоставляет декоратор lru_cache, который может значительно ускорить работу функций с повторяющимися вызовами. Этот декоратор сохраняет результаты вызовов функции с определёнными аргументами, и при повторном вызове с теми же аргументами возвращает кэшированное значение, а не выполняет функцию заново.

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

🔗 Python tricks
Использование virtualenv для изолированных окружений

Использование изолированных виртуальных окружений с помощью virtualenv позволяет вам создавать отдельные пространства для каждого вашего проекта. Это помогает избежать конфликтов между зависимостями разных проектов и поддерживать чистоту системы.

Этот лайхак будет полезен всем разработчикам Python, особенно тем, кто работает над несколькими проектами одновременно или разрабатывает приложения с различными зависимостями. Использование virtualenv позволяет поддерживать порядок и избежать неожиданных проблем с совместимостью.

🔗 Python tricks
Использование requirements.txt для управления зависимостями

Файл requirements.txt позволяет вам указать все зависимости вашего проекта, что делает его проще для установки на других машинах или серверах. Это особенно полезно, если вы работаете в команде или развертываете приложение на новом сервере.

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

🔗 Python tricks
Использование файла .env для управления конфигурациями

При разработке приложений часто необходимо управлять конфигурационными параметрами, такими как параметры подключения к базе данных, API-ключи и другие секретные данные. Хранение этих данных в коде может привести к их утечке и усложнить управление конфигурациями. Использование файла .env позволяет отделить конфигурацию от кода и упрощает управление переменными окружения.

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

🔗 Python tricks
Использование файла .env для управления конфигурациями

При разработке приложений часто необходимо управлять конфигурационными параметрами, такими как параметры подключения к базе данных, API-ключи и другие секретные данные. Хранение этих данных в коде может привести к их утечке и усложнить управление конфигурациями. Использование файла .env позволяет отделить конфигурацию от кода и упрощает управление переменными окружения.

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

🔗 Python tricks
Использование встроенного модуля logging для удобного логирования

Правильное логирование — это важный аспект разработки приложений, который помогает отслеживать поведение приложения и диагностировать проблемы. Модуль logging в Python предоставляет простой и гибкий способ создания логов.

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

🔗 Python tricks
Использование dataclasses для упрощения работы с данными

dataclass — это специальный декоратор в Python (доступный с версии 3.7), который автоматически создает методы, такие как init, repr, eq и другие, для классов, представляющих данные. Это позволяет сократить код и сделать его более читаемым.

Использование dataclass — это простой способ повысить эффективность разработки и сделать ваш код более чистым и понятным!

🔗 Python tricks
Использование contextlib для управления ресурсами

Модуль contextlib в Python предоставляет удобные инструменты для работы с контекстными менеджерами, что позволяет упрощать управление ресурсами, такими как файлы, сетевые подключения и другие объекты, требующие освобождения ресурсов после использования.

Использование contextlib и контекстных менеджеров — это простой и мощный способ сделать ваш код более безопасным и удобным для работы!

🔗 Python tricks
Использование аннотаций типов для повышения ясности кода

Что это? Аннотации типов (type hints) позволяют указывать ожидаемые типы переменных, аргументов функций и возвращаемых значений. Это не влияет на выполнение программы, но значительно улучшает читаемость кода и облегчает его поддержку.

Использование аннотаций типов — простой, но эффективный способ улучшить качество кода и снизить количество ошибок.

🔗 Python tricks
Использование контекстных менеджеров для работы с ресурсами

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

Использование контекстных менеджеров — это простой и эффективный способ повысить надежность и читаемость вашего кода.

🔗 Python tricks
Использование SQLAlchemy для упрощенного взаимодействия с базами данных

SQLAlchemy — это популярная библиотека для работы с базами данных в Python. Она обеспечивает удобный интерфейс для выполнения операций с базами данных, используя как SQL-запросы, так и ORM (Object-Relational Mapping).

Таким образом, использование SQLAlchemy может значительно упростить вашу работу с базами данных в Python!

🔗 Python tricks
Использование контекстного менеджера для безопасного выполнения операций с базой данных

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

Этот лайфхак особенно полезен при написании небольших приложений или скриптов, которые работают с базами данных!

🔗 Python tricks
Использование executemany для массовых вставок данных

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

Использование executemany — это простой, но мощный способ ускорить взаимодействие с базой данных при работе с множеством записей!

🔗 Python tricks