Memray
Memray - это библиотека для профилирования памяти и она является важным инструментом оптимизации производительности Python программ.
Библиотека отслеживает выделение и освобождение памяти при работе программы, поддерживает отслеживание ссылок на объект, применятся для профилирования на серверах и в виртуальных окружениях.
В примере мы используем декоратор memray.profile, который будет отслеживать все выделение и освобождение памяти внутри функции my_func().
При запуске этого кода memray выведет отчёт.
🔗 Python tricks
Memray - это библиотека для профилирования памяти и она является важным инструментом оптимизации производительности Python программ.
Библиотека отслеживает выделение и освобождение памяти при работе программы, поддерживает отслеживание ссылок на объект, применятся для профилирования на серверах и в виртуальных окружениях.
В примере мы используем декоратор memray.profile, который будет отслеживать все выделение и освобождение памяти внутри функции my_func().
При запуске этого кода memray выведет отчёт.
🔗 Python tricks
Аннотация типов
Аннотации типов (type hints) позволяют указать ожидаемые типы аргументов функций и возвращаемых значений. Они были введены в Python 3.5.
Аннотации типов не проверяются во время выполнения кода. Это просто подсказки для разработчиков и инструментов статического анализа кода.
Поддерживаются встроенные типы (int, float, str, bool и т.д.), а также классы, списки, словари и кортежи с указанием типов внутри.
Для необязательных аргументов используется Optional[] (например, Optional[int]).
Для возвращения нескольких типов можно использовать Union (например, Union[int, str]).
🔗 Python tricks
Аннотации типов (type hints) позволяют указать ожидаемые типы аргументов функций и возвращаемых значений. Они были введены в Python 3.5.
Аннотации типов не проверяются во время выполнения кода. Это просто подсказки для разработчиков и инструментов статического анализа кода.
Поддерживаются встроенные типы (int, float, str, bool и т.д.), а также классы, списки, словари и кортежи с указанием типов внутри.
Для необязательных аргументов используется Optional[] (например, Optional[int]).
Для возвращения нескольких типов можно использовать Union (например, Union[int, str]).
🔗 Python tricks
object
object - это встроенный класс, от него наследуются сразу все новые классы, если явно не указан другой базовый класс.
У объектов класса object есть методы init, str, repr и другие. Их можно переопределять в дочерних классах.
Атрибуты класса объявляются внутри класса, но вне всех методов. Атрибуты экземпляра объявляются в init.
Чтобы использовать класс object в своем коде, достаточно создать класс, унаследованный от object.
🔗 Python tricks
object - это встроенный класс, от него наследуются сразу все новые классы, если явно не указан другой базовый класс.
У объектов класса object есть методы init, str, repr и другие. Их можно переопределять в дочерних классах.
Атрибуты класса объявляются внутри класса, но вне всех методов. Атрибуты экземпляра объявляются в init.
Чтобы использовать класс object в своем коде, достаточно создать класс, унаследованный от object.
🔗 Python tricks
fileno()
Метод fileno() возвращает файловый дескриптор для данного файла. Файловый дескриптор — это целочисленное значение, которое однозначно определяет открытый файл в операционной системе. Он используется для операций ввода/вывода с файлом.
🔗 Python tricks
Метод fileno() возвращает файловый дескриптор для данного файла. Файловый дескриптор — это целочисленное значение, которое однозначно определяет открытый файл в операционной системе. Он используется для операций ввода/вывода с файлом.
🔗 Python tricks
math.pow
math.pow — это функция в модуле math в Python, которая возводит число в заданную степень. Эта функция возвращает результат в виде числа с плавающей точкой (тип float). Однако есть и альтернативный способ возвести число в степень в Python, используя оператор **.
🔗 Python tricks
math.pow — это функция в модуле math в Python, которая возводит число в заданную степень. Эта функция возвращает результат в виде числа с плавающей точкой (тип float). Однако есть и альтернативный способ возвести число в степень в Python, используя оператор **.
🔗 Python tricks
Обычные арифметические операторы (ч.9)
Этот лайфхак полезен при работе с комплексными числами или другими типами данных, где определение операций возведения в степень и взятия по модулю имеет смысл. Переопределение метода pow позволяет объекту поддерживать стандартные операции возведения в степень и взятия по модулю в Python.
🔗 Python tricks
Этот лайфхак полезен при работе с комплексными числами или другими типами данных, где определение операций возведения в степень и взятия по модулю имеет смысл. Переопределение метода pow позволяет объекту поддерживать стандартные операции возведения в степень и взятия по модулю в Python.
🔗 Python tricks
Обычные арифметические операторы (ч.10)
Этот лайфхак полезен при работе с бинарными числами или другими типами данных, где операция сдвига влево имеет смысл. Переопределение метода lshift позволяет объекту поддерживать стандартную операцию сдвига влево в Python.
🔗 Python tricks
Этот лайфхак полезен при работе с бинарными числами или другими типами данных, где операция сдвига влево имеет смысл. Переопределение метода lshift позволяет объекту поддерживать стандартную операцию сдвига влево в Python.
🔗 Python tricks
Обычные арифметические операторы (ч.11)
Этот лайфхак полезен при работе с бинарными числами или другими типами данных, где операция сдвига вправо имеет смысл. Переопределение метода rshift позволяет объекту поддерживать стандартную операцию сдвига вправо в Python.
🔗 Python tricks
Этот лайфхак полезен при работе с бинарными числами или другими типами данных, где операция сдвига вправо имеет смысл. Переопределение метода rshift позволяет объекту поддерживать стандартную операцию сдвига вправо в Python.
🔗 Python tricks
Обычные арифметические операторы (ч.12)
Этот лайфхак полезен при работе с бинарными числами или другими типами данных, где операция побитового И имеет смысл. Переопределение метода and позволяет объекту поддерживать стандартную операцию побитового И в Python.
🔗 Python tricks
Этот лайфхак полезен при работе с бинарными числами или другими типами данных, где операция побитового И имеет смысл. Переопределение метода and позволяет объекту поддерживать стандартную операцию побитового И в Python.
🔗 Python tricks
writelines
В Python метод writelines() используется для записи списка строк в файл. Каждая строка из списка записывается последовательно, без добавления дополнительных символов (например, новых строк) между строками, если они не включены в сами строки.
🔗 Python tricks
В Python метод writelines() используется для записи списка строк в файл. Каждая строка из списка записывается последовательно, без добавления дополнительных символов (например, новых строк) между строками, если они не включены в сами строки.
🔗 Python tricks
Обычные арифметические операторы (ч.12)
Этот лайфхак полезен при работе с бинарными числами или другими типами данных, где операция побитового исключающего ИЛИ имеет смысл. Переопределение метода xor позволяет объекту поддерживать стандартную операцию побитового исключающего ИЛИ в Python.
🔗 Python tricks
Этот лайфхак полезен при работе с бинарными числами или другими типами данных, где операция побитового исключающего ИЛИ имеет смысл. Переопределение метода xor позволяет объекту поддерживать стандартную операцию побитового исключающего ИЛИ в Python.
🔗 Python tricks
NumPy: array_split
Ты можешь использовать array split() для разделения массивов, передав ему массив, который хочешь разделить, и количество разделений. Если в массиве меньше элементов, чем требуется, он соответствующим образом корректируется с конца.
🔗 Python tricks
Ты можешь использовать array split() для разделения массивов, передав ему массив, который хочешь разделить, и количество разделений. Если в массиве меньше элементов, чем требуется, он соответствующим образом корректируется с конца.
🔗 Python tricks
math.remainder
Функция math.remainder возвращает остаток от деления двух чисел. В отличие от оператора %, который возвращает остаток согласно правилам деления целых чисел, math.remainder учитывает точное представление чисел с плавающей точкой и возвращает остаток, сохраняя знак делимого.
🔗 Python tricks
Функция math.remainder возвращает остаток от деления двух чисел. В отличие от оператора %, который возвращает остаток согласно правилам деления целых чисел, math.remainder учитывает точное представление чисел с плавающей точкой и возвращает остаток, сохраняя знак делимого.
🔗 Python tricks
Обычные арифметические операторы (ч.13)
Этот лайфхак полезен при работе с бинарными числами или другими типами данных, где операция побитового ИЛИ имеет смысл. Переопределение метода or позволяет объекту поддерживать стандартную операцию побитового ИЛИ в Python.
🔗 Python tricks
Этот лайфхак полезен при работе с бинарными числами или другими типами данных, где операция побитового ИЛИ имеет смысл. Переопределение метода or позволяет объекту поддерживать стандартную операцию побитового ИЛИ в Python.
🔗 Python tricks
Использование defaultdict для работы со словарями
При работе со словарями часто возникает необходимость инициализировать значения по умолчанию, чтобы избежать ошибок при попытке доступа к несуществующим ключам. В таких случаях полезно использовать defaultdict из модуля collections.
Использование defaultdict упрощает код и избавляет от необходимости вручную проверять существование ключей в словаре, делая его более читаемым и эффективным.
🔗 Python tricks
При работе со словарями часто возникает необходимость инициализировать значения по умолчанию, чтобы избежать ошибок при попытке доступа к несуществующим ключам. В таких случаях полезно использовать defaultdict из модуля collections.
Использование defaultdict упрощает код и избавляет от необходимости вручную проверять существование ключей в словаре, делая его более читаемым и эффективным.
🔗 Python tricks
Расширение возможности сложения для пользовательских объектов
radd — это метод Python, который позволяет реализовать операцию сложения с обратным порядком операндов. Он вызывается, когда объект справа от оператора сложения не поддерживает соответствующий метод add.
Представьте, что у вас есть класс, который представляет пользовательские числа. Вы хотите, чтобы эти числа могли складываться с обычными числами Python (int, float) и другими экземплярами своего класса.
Этот подход позволяет сделать ваш класс более гибким и совместимым с различными типами данных, упрощая использование и повышая его удобство.
🔗 Python tricks
radd — это метод Python, который позволяет реализовать операцию сложения с обратным порядком операндов. Он вызывается, когда объект справа от оператора сложения не поддерживает соответствующий метод add.
Представьте, что у вас есть класс, который представляет пользовательские числа. Вы хотите, чтобы эти числа могли складываться с обычными числами Python (int, float) и другими экземплярами своего класса.
Этот подход позволяет сделать ваш класс более гибким и совместимым с различными типами данных, упрощая использование и повышая его удобство.
🔗 Python tricks
Расширение возможности вычитания для пользовательских объектов
Метод rsub в Python используется для реализации обратного вычитания, когда операнд слева не поддерживает соответствующий метод sub. Это позволяет определить, как ваш объект должен вычитаться из другого объекта.
Рассмотрим пример, в котором у нас есть класс, представляющий пользовательские числа, и мы хотим поддерживать вычитание этих чисел как с обычными числами Python (int, float), так и с другими экземплярами нашего класса.
Этот лайфхак позволяет сделать ваш класс более универсальным и поддерживающим операции вычитания с различными типами данных, что повышает его гибкость и удобство использования.
🔗 Python tricks
Метод rsub в Python используется для реализации обратного вычитания, когда операнд слева не поддерживает соответствующий метод sub. Это позволяет определить, как ваш объект должен вычитаться из другого объекта.
Рассмотрим пример, в котором у нас есть класс, представляющий пользовательские числа, и мы хотим поддерживать вычитание этих чисел как с обычными числами Python (int, float), так и с другими экземплярами нашего класса.
Этот лайфхак позволяет сделать ваш класс более универсальным и поддерживающим операции вычитания с различными типами данных, что повышает его гибкость и удобство использования.
🔗 Python tricks
Как преобразовать строку в число с плавающей запятой, если в строке есть лишние запятые (ч.1)
Важно отметить, что в Python десятичная часть отделяется с помощью точки. И в данном случае запятая – это просто лишний символ, который добавляет нам трудностей при переводе числа из строкового типа в вещественный.
🔗 Python tricks
Важно отметить, что в Python десятичная часть отделяется с помощью точки. И в данном случае запятая – это просто лишний символ, который добавляет нам трудностей при переводе числа из строкового типа в вещественный.
🔗 Python tricks
Как преобразовать строку в число с плавающей запятой, если в строке есть лишние запятые (ч.2)
Преобразовать такую строку в число с плавающей запятой сложнее. Вызов функции float() напрямую приведет нас к ошибке. Поэтому, прежде чем вызвать функцию float(), нам нужно избавиться от лишней запятой в строке.
Запятую мы удалим из строки с помощью функции replace(), заменив ее на пустую строку..
🔗 Python tricks
Преобразовать такую строку в число с плавающей запятой сложнее. Вызов функции float() напрямую приведет нас к ошибке. Поэтому, прежде чем вызвать функцию float(), нам нужно избавиться от лишней запятой в строке.
Запятую мы удалим из строки с помощью функции replace(), заменив ее на пустую строку..
🔗 Python tricks
string.isascii
string.isascii используется для проверки того, содержит ли строка только символы ASCII (American Standard Code for Information Interchange). В этом примере string1 содержит только символы ASCII (латинские буквы, запятая и восклицательный знак), поэтому метод isascii() возвращает True. В то время как string2 содержит символы, которые не являются символами ASCII (русские буквы), поэтому метод isascii() возвращает False.
🔗 Python tricks
string.isascii используется для проверки того, содержит ли строка только символы ASCII (American Standard Code for Information Interchange). В этом примере string1 содержит только символы ASCII (латинские буквы, запятая и восклицательный знак), поэтому метод isascii() возвращает True. В то время как string2 содержит символы, которые не являются символами ASCII (русские буквы), поэтому метод isascii() возвращает False.
🔗 Python tricks