Что такое аннотация типов?
Аннотации типов (type hints) позволяют указать ожидаемые типы аргументов функций и возвращаемых значений. Они были введены в Python 3.5.
Аннотации типов не проверяются во время выполнения кода. Это просто подсказки для разработчиков и инструментов статического анализа кода.
Поддерживаются встроенные типы (int, float, str, bool и т.д.), а также классы, списки, словари и кортежи с указанием типов внутри.
Для необязательных аргументов используется Optional[] (например, Optional[int]).
Для возвращения нескольких типов можно использовать Union (например, Union[int, str]).
#theory // Just Python
Аннотации типов (type hints) позволяют указать ожидаемые типы аргументов функций и возвращаемых значений. Они были введены в Python 3.5.
Аннотации типов не проверяются во время выполнения кода. Это просто подсказки для разработчиков и инструментов статического анализа кода.
Поддерживаются встроенные типы (int, float, str, bool и т.д.), а также классы, списки, словари и кортежи с указанием типов внутри.
Для необязательных аргументов используется Optional[] (например, Optional[int]).
Для возвращения нескольких типов можно использовать Union (например, Union[int, str]).
#theory // Just Python
Что такое дескрипторы?
Дескрипторы — это механизм, который позволяет контролировать доступ к атрибутам классов. Они предоставляют способ определения специальных методов для доступа, присваивания и удаления атрибутов. Дескрипторы часто используются для реализации логики, связанной с доступом к данным, внутри классов.
Для создания дескриптора нужно определить класс, который реализует хотя бы один из трех вышеуказанных методов. Затем экземпляры этого класса могут быть присвоены атрибутам других классов.
#theory // Just Python
Дескрипторы — это механизм, который позволяет контролировать доступ к атрибутам классов. Они предоставляют способ определения специальных методов для доступа, присваивания и удаления атрибутов. Дескрипторы часто используются для реализации логики, связанной с доступом к данным, внутри классов.
Для создания дескриптора нужно определить класс, который реализует хотя бы один из трех вышеуказанных методов. Затем экземпляры этого класса могут быть присвоены атрибутам других классов.
#theory // Just Python
Гуглим с помощью Python
Установка необходимых пакетов — pip install beautifulsoup4 и pip install google.
В нашем примере мы задаем в поиске слово "Python" и получаем ссылки на 3 самых популярных по мнению Google сайтов о Python.
#theory // Just Python
Установка необходимых пакетов — pip install beautifulsoup4 и pip install google.
В нашем примере мы задаем в поиске слово "Python" и получаем ссылки на 3 самых популярных по мнению Google сайтов о Python.
#theory // Just Python
getopt
Сам по себе getopt крайне схож по работе с функцией getopt() для анализа параметров командной строки. Модуль полезен при анализе аргументов командной строки, где мы хотим, чтобы пользователь также вводил некоторые параметры. Давайте посмотрим на простой пример, чтобы понять это.
#theory // Just Python
Сам по себе getopt крайне схож по работе с функцией getopt() для анализа параметров командной строки. Модуль полезен при анализе аргументов командной строки, где мы хотим, чтобы пользователь также вводил некоторые параметры. Давайте посмотрим на простой пример, чтобы понять это.
#theory // Just Python
Что такое распаковка кортежа?
Распаковка кортежа — это процесс извлечения отдельных элементов из кортежа и присвоения их переменным. Кортеж представляет собой упорядоченную коллекцию элементов, которые могут быть различных типов. Распаковка позволяет удобно извлекать значения из кортежа и использовать их отдельно.
Распаковка кортежей может быть полезным при работе с функциями, возвращающими несколько значений, а также для обмена значениями переменных без необходимости использовать дополнительные временные переменные.
#theory // Just Python
Распаковка кортежа — это процесс извлечения отдельных элементов из кортежа и присвоения их переменным. Кортеж представляет собой упорядоченную коллекцию элементов, которые могут быть различных типов. Распаковка позволяет удобно извлекать значения из кортежа и использовать их отдельно.
Распаковка кортежей может быть полезным при работе с функциями, возвращающими несколько значений, а также для обмена значениями переменных без необходимости использовать дополнительные временные переменные.
#theory // Just Python
whylogs
whylogs — это библиотека для мониторинга и аудита машинного обучения.
Она помогает делать ML системы более прозрачными, стабильными и надёжными за счёт постоянного мониторинга и аудита.
Она используется для того, чтобы:
— Отслеживать статистику и метрики моделей и данных в режиме реального времени.
— Выявлять дрейф данных - изменения в распределении данных со временем.
— Собирать примеры исключений и выбросов.
— Проводить аудит моделей и данных в поисках проблем.
— Генерировать автоматические отчёты и визуализации.
— Интегрировать с MLflow, TensorBoard и другими инструментами.
#theory // Just Python
whylogs — это библиотека для мониторинга и аудита машинного обучения.
Она помогает делать ML системы более прозрачными, стабильными и надёжными за счёт постоянного мониторинга и аудита.
Она используется для того, чтобы:
— Отслеживать статистику и метрики моделей и данных в режиме реального времени.
— Выявлять дрейф данных - изменения в распределении данных со временем.
— Собирать примеры исключений и выбросов.
— Проводить аудит моделей и данных в поисках проблем.
— Генерировать автоматические отчёты и визуализации.
— Интегрировать с MLflow, TensorBoard и другими инструментами.
#theory // Just Python
HTTP-запросы с использованием Aiohttp в Python 3
Если вы опытный программист на Python, то наверняка слышали о GIL или Global Interpreter Lock. Эта блокировка защищает доступ к объектам Python таким образом, что только один поток может одновременно выполнять байткод.....
#theory // Just Python
Если вы опытный программист на Python, то наверняка слышали о GIL или Global Interpreter Lock. Эта блокировка защищает доступ к объектам Python таким образом, что только один поток может одновременно выполнять байткод.....
#theory // Just Python
string.strip
Метод strip() возвращает копию строки, удаляя как начальные, так и конечные символы (в зависимости от переданного строкового аргумента). Если аргумент chars не указан, все начальные и конечные пробелы удаляются из строки.
#theory // Just Python
Метод strip() возвращает копию строки, удаляя как начальные, так и конечные символы (в зависимости от переданного строкового аргумента). Если аргумент chars не указан, все начальные и конечные пробелы удаляются из строки.
#theory // Just Python
Sketch
Sketch — это библиотека для статистического анализа и обработки данных. Она позволяет быстро проводить первичный анализ данных и строить прототипы моделей машинного обучения.
Основные возможности:
— Быстрый и эффективный подсчёт статистик по данным, таких как сумма, среднее, медиана, дисперсия.
— Аппроксимация распределений и плотностей вероятности.
— Вычисление квантилей, сглаживания, гистограмм.
— Тестирование статистических гипотез, оценка p-value.
— Генерация случайных чисел из разных распределений.
Sketch позволяет ускорить статистический анализ данных с помощью простого и интуитивного API и используется для:
— Первичного анализа и визуализации данных.
— Статистических тестов в научных исследованиях.
— Построения прототипов моделей машинного обучения.
— Анализа пользовательских действий и событий.
— Симуляции процессов на основе статистических моделей.
#theory // Just Python
Sketch — это библиотека для статистического анализа и обработки данных. Она позволяет быстро проводить первичный анализ данных и строить прототипы моделей машинного обучения.
Основные возможности:
— Быстрый и эффективный подсчёт статистик по данным, таких как сумма, среднее, медиана, дисперсия.
— Аппроксимация распределений и плотностей вероятности.
— Вычисление квантилей, сглаживания, гистограмм.
— Тестирование статистических гипотез, оценка p-value.
— Генерация случайных чисел из разных распределений.
Sketch позволяет ускорить статистический анализ данных с помощью простого и интуитивного API и используется для:
— Первичного анализа и визуализации данных.
— Статистических тестов в научных исследованиях.
— Построения прототипов моделей машинного обучения.
— Анализа пользовательских действий и событий.
— Симуляции процессов на основе статистических моделей.
#theory // Just Python
collections.Mapping
Он наследуется встроенными типами словарей, такими как
Класс
Это позволяет писать универсальный код, который будет работать с любым типом, реализующим этот интерфейс.
Например,
#theory // Just Python
collections.Mapping — это абстрактный базовый класс, который представляет отображение ключ-значение. Он наследуется встроенными типами словарей, такими как
dict, а также другими типами, которые реализуют схожее поведение, например OrderedDict.Класс
Mapping определяет интерфейс, общий для всех отображений ключ-значение, включая такие методы как keys(), values(), items() и другие. Это позволяет писать универсальный код, который будет работать с любым типом, реализующим этот интерфейс.
Например,
Mapping часто используется вместе с isinstance или issubclass для проверки, является ли объект словарем. Также он полезен при написании функций, которым нужно принимать на вход отображения, но без привязки к конкретному типу как dict. Mapping гарантирует наличие основных методов словаря у переданного объекта.#theory // Just Python
Асинхронные запросы с aiohttp
Модуль
Установка
Модуль
#modules // Just Python
Модуль
aiohttp представляет из себя асинхронный HTTP клиент/сервер для asyncio и Python. Он позволяет выполнять асинхронные HTTP запросы, что делает его идеальным инструментом для современных приложений, где требуется высокая производительность и параллелизм.Установка
aiohttp производится через pip. Чтобы начать делать асинхронные запросы, вам потребуется взаимодействовать с ним с помощью синтаксиса async/await. Запросы, такие как GET, POST, PUT и DELETE, оформляются чисто и ясно. Объекты ответов содержат все необходимые атрибуты для обработки ответов от сервера.Модуль
aiohttp подходит не только для работы с асинхронными веб-сервисами, но и для асинхронного скрапинга веб-страниц.#modules // Just Python
Функции, поддерживающие только именованные аргументы (kwargs)
**kwargs (keyword arguments) — это способ передачи произвольного количества именованных аргументов в функцию.
В функциях после позиционных и обычных именованных аргументов указывают параметр
В
Благодаря этому через
Если одновременно используются
#theory // Just Python
**kwargs (keyword arguments) — это способ передачи произвольного количества именованных аргументов в функцию.
В функциях после позиционных и обычных именованных аргументов указывают параметр
**kwargs.В
kwargs передаются аргументы в виде ключ-значение. Внутри функции kwargs становится словарем, где ключи — имена аргументов, значения — значения аргументов. Благодаря этому через
kwargs можно передать любое количество дополнительных аргументов в функцию.Если одновременно используются
*args и **kwargs, то в вызове сначала указываются *args.#theory // Just Python
Метод Counter.elements()
Метод Counter.elements() возвращает итератор по элементам в словаре Counter.
Этот метод позволяет эффективно перебрать элементы словаря
Как видно из примера, метод
Это позволяет эффективно обрабатывать элементы, не создавая промежуточные структуры данных.
#theory // Just Python
Метод Counter.elements() возвращает итератор по элементам в словаре Counter.
Этот метод позволяет эффективно перебрать элементы словаря
Counter без создания копии.Как видно из примера, метод
elements() возвращает итератор по элементам словаря Counter в порядке их добавления. Это позволяет эффективно обрабатывать элементы, не создавая промежуточные структуры данных.
#theory // Just Python
Geopandas
Geopandas — это библиотека для работы с геопространственными данными. Она базируется на библиотеке
Основные области применения:
— Картография и визуализация пространственных данных.
— Анализ и обработка данных, содержащих географическую привязку.
— Работа с геометрическими объектами: точки, линии, полигоны.
— Преобразование и проектирование геоданных.
— Пространственный анализ и геостатистика.
— Моделирование географических процессов.
— ГИС-приложения и веб-картография.
#theory // Just Python
Geopandas — это библиотека для работы с геопространственными данными. Она базируется на библиотеке
Pandas и интегрируется с другими инструментами геоинформатики, такими как Shapely, Fiona, PyProj.Geopandas позволяет эффективно работать с географическими данными в виде векторных и растровых слоев. Основные области применения:
— Картография и визуализация пространственных данных.
— Анализ и обработка данных, содержащих географическую привязку.
— Работа с геометрическими объектами: точки, линии, полигоны.
— Преобразование и проектирование геоданных.
— Пространственный анализ и геостатистика.
— Моделирование географических процессов.
— ГИС-приложения и веб-картография.
#theory // Just Python
file.readlines
Метод readlines() возвращает список, содержащий каждую строку файла в виде элемента списка. Используй параметр hint, чтобы ограничить количество возвращаемых строк. Если общее количество возвращенных байтов превышает указанное число, строки больше не возвращаются. По умолчанию hint равен -1. Это значит, что вернутся все строки.
#theory // Just Python
Метод readlines() возвращает список, содержащий каждую строку файла в виде элемента списка. Используй параметр hint, чтобы ограничить количество возвращаемых строк. Если общее количество возвращенных байтов превышает указанное число, строки больше не возвращаются. По умолчанию hint равен -1. Это значит, что вернутся все строки.
#theory // Just Python
aiohttp
Библиотека
В этом примере создается веб-приложение с помощью
#modules // Just Python
Библиотека
aiohttp — это асинхронный HTTP-клиент/сервер для asyncio и Python. Она поддерживает как клиентские, так и серверные веб-сокеты “из коробки” без коллбэков. Веб-сервер имеет промежуточное ПО (middlewares), сигналы и подключаемую маршрутизацию.В этом примере создается веб-приложение с помощью
aiohttp.web.Application, добавляются маршруты для обработки запросов к корневому URL-адресу (/) и URL-адресу с именем (/{name}). Функция handle обрабатывает запросы, извлекает имя из параметров запроса (или использует значение по умолчанию “Anonymous”) и возвращает ответ с текстом приветствия.#modules // Just Python
list.insert
Метод insert() вставляет элемент в список по указанному индексу. Если индекс равен 0, элемент вставляется в начало списка. Если индекс равен 3, индекс вставленного элемента будет равен 3 (четвертый элемент в списке).
#theory // Just Python
Метод insert() вставляет элемент в список по указанному индексу. Если индекс равен 0, элемент вставляется в начало списка. Если индекс равен 3, индекс вставленного элемента будет равен 3 (четвертый элемент в списке).
#theory // Just Python
pprint()
Функция pprint() предназначена для красивого форматированного вывода данных.
По умолчанию выводит данные с отступами и переносами, чтобы структура была наглядной.
Может принимать ширину вывода в количестве символов для лучшего форматирования.
Имеет параметры
Функционал
#theory // Just Python
Функция pprint() предназначена для красивого форматированного вывода данных.
pprint() форматирует произвольные структуры данных, такие как вложенные списки, словари, кортежи для удобочитаемого вывода.По умолчанию выводит данные с отступами и переносами, чтобы структура была наглядной.
Может принимать ширину вывода в количестве символов для лучшего форматирования.
Имеет параметры
depth и compact для настройки уровня вложенности и режима компактного вывода.Функционал
pprint() доступен через модуль pprint в стандартной библиотеке.#theory // Just Python
Что такое Протоколы
Протоколы — это соглашения, которые определяют интерфейс класса и поведение его объектов.
Протоколы задаются с помощью специальных методов, таких как
Они позволяют классам работать с различными функциями и операторами языка.
Реализуя протоколы можно интегрировать классы в языке и делать их поведение естественным и интуитивным.
В Python есть протоколы для чисел, итераторов, контекстных менеджеров, атрибутов и других областей.
Встроенные и сторонние библиотеки полагаются на стандартные протоколы.
#theory // Just Python
Протоколы — это соглашения, которые определяют интерфейс класса и поведение его объектов.
Протоколы задаются с помощью специальных методов, таких как
str, len и другие.Они позволяют классам работать с различными функциями и операторами языка.
Реализуя протоколы можно интегрировать классы в языке и делать их поведение естественным и интуитивным.
В Python есть протоколы для чисел, итераторов, контекстных менеджеров, атрибутов и других областей.
Встроенные и сторонние библиотеки полагаются на стандартные протоколы.
#theory // Just Python
Colorama
Colorama — это библиотека для Python, которая предоставляет простой способ добавить цвета и стили текста при выводе в терминале. Она особенно полезна для создания красочного и информативного текстового интерфейса в командной строке.
Для использования Colorama вам нужно установить библиотеку с помощью pip:
После установки вы можете начать использовать Colorama в своем коде Python. Colorama делает работу с цветами и стилями текста в терминале гораздо более удобной и читаемой.
#theory // Just Python
Colorama — это библиотека для Python, которая предоставляет простой способ добавить цвета и стили текста при выводе в терминале. Она особенно полезна для создания красочного и информативного текстового интерфейса в командной строке.
Для использования Colorama вам нужно установить библиотеку с помощью pip:
pip install colorama
После установки вы можете начать использовать Colorama в своем коде Python. Colorama делает работу с цветами и стилями текста в терминале гораздо более удобной и читаемой.
#theory // Just Python
Memray
Memray - это библиотека для профилирования памяти и она является важным инструментом оптимизации производительности Python программ.
Библиотека отслеживает выделение и освобождение памяти при работе программы, поддерживает отслеживание ссылок на объект, применятся для профилирования на серверах и в виртуальных окружениях.
В примере мы используем декоратор memray.profile, который будет отслеживать все выделение и освобождение памяти внутри функции my_func().
При запуске этого кода memray выведет отчёт.
#theory // Just Python
Memray - это библиотека для профилирования памяти и она является важным инструментом оптимизации производительности Python программ.
Библиотека отслеживает выделение и освобождение памяти при работе программы, поддерживает отслеживание ссылок на объект, применятся для профилирования на серверах и в виртуальных окружениях.
В примере мы используем декоратор memray.profile, который будет отслеживать все выделение и освобождение памяти внутри функции my_func().
При запуске этого кода memray выведет отчёт.
#theory // Just Python