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

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

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

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Использование 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
Использование контекстного менеджера для автоматического управления соединением с базой данных

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

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

🔗 Python tricks
Использование пакетной обработки запросов (batch processing) для ускорения вставки данных в базу

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

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

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

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

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

🔗 Python tricks
Использование ORM SQLAlchemy для работы с базами данных вместо "чистого" SQL

SQLAlchemy позволяет вам взаимодействовать с базами данных на уровне объектов Python, что упрощает работу и делает код более читабельным и безопасным.

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

🔗 Python tricks
Использование контекстного менеджера with с соединениями и курсорами в SQLite

Часто при работе с базами данных, особенно с SQLite, нужно вручную открывать и закрывать соединения и курсоры. Использование контекстного менеджера with помогает автоматизировать это и делает код чище.

🔗 Python tricks
Использование пакетной вставки данных в базу данных с помощью метода executemany()

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

Этот подход поможет ускорить взаимодействие с базами данных при большом объеме данных.

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

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

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

🔗 Python tricks
Объясните, что такое monkey patching и приведите пример

Monkey patching — это техника изменения поведения кода во время выполнения путем динамической замены или добавления методов или атрибутов в существующем объекте. Эта техника может быть полезна в том случае, когда изменения не могут быть внесены в существующий код, и требует минимальных изменений в существующем коде.

🔗 Python tricks
Что такое магические методы dunder

Магические методы, также известные как «dunder» (double underscore) методы в Python, это специальные методы, которые начинаются и заканчиваются двойным подчеркиванием. Они позволяют определить, как объекты этого класса будут вести себя в различных контекстах, например, при использовании операторов Python, таких как +, -, *, / и т.д., при вызове функций и методов, при сериализации и многое другое.

🔗 Python tricks
Как начать отладку при утечке памяти в рабочем приложении

Для отладки утечек памяти в Python можно использовать инструменты, такие как Memory Profiler или objgraph.

Запустите вашу программу с помощью команды python -m memory_profiler my_script.py. Будет выведен подробный отчет о том, сколько памяти используется в каждой строке программы, а также общее использование памяти и любые утечки.

Этот код создаст изображение my_list.png, на котором будут показаны все объекты, на которые ссылается my_list, а также все объекты, которые ссылается на них. Это может помочь вам понять, какие объекты держат ссылки на ваши объекты и могут вызывать утечки памяти.

🔗 Python tricks
В каких ситуациях возникает исключение NotImplementedError

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

🔗 Python tricks
Генераторные фунции (generator functions)

Если предикатов фильтрации или обработчиков элементов списка много, то удобнее использовать генераторы. Они могут не дать прироста скорости, но помогут сэкономить память.

Генераторной фунцией в python называется функция, которая ведет себя как итератор. Для определения генераторной функции нужно использовать ключевое слово yield.

🔗 Python tricks
Конструктор

Метод, который вызывается при создании объектов, в ООП зовётся конструктором. Он нужен для объектов, которые изначально должны иметь какие-то значение. Например, пустые экземпляры класса "Студент" бессмысленны, и желательно иметь хотя бы минимальный обозначенный набор вроде имени, фамилии и группы.

В качестве Питоновского конструктора выступает метод init()

🔗 Python tricks
Методы сравнения объектов между собой (ч.1)

Метод lt(self, other) в Python позволяет определить порядок сортировки объектов при использовании встроенных функций сортировки, таких как sorted(). При реализации этого метода в классе можно указать, какие атрибуты объекта должны учитываться при сравнении с другими объектами для определения их относительного порядка.

Например, предположим, что у нас есть класс Point, который представляет собой точку на плоскости и имеет атрибуты x и y. Мы можем определить метод lt(self, other) в классе Point, чтобы при сравнении двух точек учитывался их порядок по оси x, а в случае равенства координат по оси x - по оси y.

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

При работе с базами данных можно упростить процесс создания и управления таблицами, используя SQLAlchemy, который автоматически создаёт таблицы на основе Python-классов (моделей).

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

🔗 Python tricks