Как работают статические методы
Статические методы создаются в классе при помощи декоратора
Такой тип методов не может модифицировать ни объект, ни сам класс. То есть передавать объект или класс и прописывать self или cls в аргументах не нужно.
Обычную функцию стоит вносить в класс в качестве статического метода в том случае, когда эта функция логически относится к классу и имеет смысл там быть.
Подписывайтесь на канал 👉@pythonofff
Статические методы создаются в классе при помощи декоратора
@staticmethod
. Такие методы привязаны к классу, а не объекту — в этом и есть основное отличие.Такой тип методов не может модифицировать ни объект, ни сам класс. То есть передавать объект или класс и прописывать self или cls в аргументах не нужно.
Обычную функцию стоит вносить в класс в качестве статического метода в том случае, когда эта функция логически относится к классу и имеет смысл там быть.
Подписывайтесь на канал 👉@pythonofff
Хэширование
Хэш — это целое число фиксированного размера, которое идентифицирует определенное значение. Каждое уникальное значение должно иметь свой собственный хэш.
Для хэширования значений есть встроенная функция hash(). Используется она в основном для сравнения значений разных объектов — сравнивать хэши легче и выгоднее.
Но изменяемые объекты по типу списков и словарей нельзя хэшировать — интерпретатор выбросит соответствующую ошибку.
Здесь, кстати, есть две пасхалки. Хэш бесконечности равен перым цифрам числа Пи, а хэш Not a Number равен нулю.
А еще случаются коллизии: например, хэши чисел -1 и -2 одинаковы.
Подписывайтесь на канал 👉@pythonofff
Хэш — это целое число фиксированного размера, которое идентифицирует определенное значение. Каждое уникальное значение должно иметь свой собственный хэш.
Для хэширования значений есть встроенная функция hash(). Используется она в основном для сравнения значений разных объектов — сравнивать хэши легче и выгоднее.
Но изменяемые объекты по типу списков и словарей нельзя хэшировать — интерпретатор выбросит соответствующую ошибку.
Здесь, кстати, есть две пасхалки. Хэш бесконечности равен перым цифрам числа Пи, а хэш Not a Number равен нулю.
А еще случаются коллизии: например, хэши чисел -1 и -2 одинаковы.
Подписывайтесь на канал 👉@pythonofff
Генераторы
Простой способ создания итератора.
Самый простой способ создания собственных итераторов в Python — это создание генератора.
В Python есть два способа создания генераторов.
Подписывайтесь на канал 👉@pythonofff
Простой способ создания итератора.
Самый простой способ создания собственных итераторов в Python — это создание генератора.
В Python есть два способа создания генераторов.
Подписывайтесь на канал 👉@pythonofff
👍1
Объектно-ориентированный итератор могут экономить панять
Процессорное время и открывать для нас новые возможности.
Давайте создадим свои собственные итераторы. Для начала мы «изобретем» заново объект итератора itertools.count.
Подписывайтесь на канал 👉@pythonofff
Процессорное время и открывать для нас новые возможности.
Давайте создадим свои собственные итераторы. Для начала мы «изобретем» заново объект итератора itertools.count.
Подписывайтесь на канал 👉@pythonofff
Выделение базовой части слов
При обработки естественного языка в машинном обучении мы сталкиваемся с множеством форм слова, например, демократия и демократизация. Для машин очень важно понимать, что эти разные слова имеют одинаковую базовую форму.
Таким образом, было бы полезно при анализе текста извлекать базовые формы слов. Можно сказать, что для процесса выделения базовой части слова необходимо обрезать концы слов.
В модуле Python NLTK (Natural Language Toolkit Package) есть различные пакет, связанные с данным процессом выделения базовой части и использующие разные алгоритмы.
Один за пакетов, snowball, использует алгоритм соответственно Snowball, разработанный Мартином Портером. Алгоритм поддерживает большинство популярных языков.
Подписывайтесь на канал 👉@pythonofff
При обработки естественного языка в машинном обучении мы сталкиваемся с множеством форм слова, например, демократия и демократизация. Для машин очень важно понимать, что эти разные слова имеют одинаковую базовую форму.
Таким образом, было бы полезно при анализе текста извлекать базовые формы слов. Можно сказать, что для процесса выделения базовой части слова необходимо обрезать концы слов.
В модуле Python NLTK (Natural Language Toolkit Package) есть различные пакет, связанные с данным процессом выделения базовой части и использующие разные алгоритмы.
Один за пакетов, snowball, использует алгоритм соответственно Snowball, разработанный Мартином Портером. Алгоритм поддерживает большинство популярных языков.
Подписывайтесь на канал 👉@pythonofff
👍2❤1
Многострочные комментарии
Некоторые языки программирования, к примеру С++, предоставляют возможность создания многострочных комментариев. Для создания многострочных комментариях вы спокойно можете использовать тройные кавычки.
Подписывайтесь на канал 👉@pythonofff
Некоторые языки программирования, к примеру С++, предоставляют возможность создания многострочных комментариев. Для создания многострочных комментариях вы спокойно можете использовать тройные кавычки.
Подписывайтесь на канал 👉@pythonofff
Отправляем запросы с HTTPX
Интересный пакет для работы с веб-запросам. Как говорят сами разработчики, это HTTP клиент следующего поколения.
Сравнивая с привычным requests, у httpx есть следующие преимущества:
— Стандартный синхронный интерфейс, но также есть поддержка асинхронности
— Поддержка HTTP/1.1 и HTTP/2
— Возможность отправлять запросы напрямую к WSGI и ASGI приложениям
— Полная поддержка аннотаций типов
— 100% покрытие тестами
Подписывайтесь на канал 👉@pythonofff
Интересный пакет для работы с веб-запросам. Как говорят сами разработчики, это HTTP клиент следующего поколения.
Сравнивая с привычным requests, у httpx есть следующие преимущества:
— Стандартный синхронный интерфейс, но также есть поддержка асинхронности
— Поддержка HTTP/1.1 и HTTP/2
— Возможность отправлять запросы напрямую к WSGI и ASGI приложениям
— Полная поддержка аннотаций типов
— 100% покрытие тестами
Подписывайтесь на канал 👉@pythonofff
👍2
Именованные кортежи
Кстати, namedtuple из collections можно также использовать для хранения данных, как и классы данных, про которые я писал в предыдущем посте.
Из названия понятно, что в основе этой структуры лежит привычный всем кортеж. Если кто не помнит, то это как список, но неизменяемый.
Функция namedtuple создает новые классы-заготовки, на основе которых уже можно создавать объекты для дальнейшего хранения данных.
В аргументы мы передаем название нового класса и список атрибутов.
Здесь еще удобно то, что мастхэв функционал типа вывода на экран и сравнения похожих объектов также уже реализован.
Подписывайтесь на канал 👉@pythonofff
Кстати, namedtuple из collections можно также использовать для хранения данных, как и классы данных, про которые я писал в предыдущем посте.
Из названия понятно, что в основе этой структуры лежит привычный всем кортеж. Если кто не помнит, то это как список, но неизменяемый.
Функция namedtuple создает новые классы-заготовки, на основе которых уже можно создавать объекты для дальнейшего хранения данных.
В аргументы мы передаем название нового класса и список атрибутов.
Здесь еще удобно то, что мастхэв функционал типа вывода на экран и сравнения похожих объектов также уже реализован.
Подписывайтесь на канал 👉@pythonofff
%matplotlib inline — это самая популярная магическая команда
Она позволяет отображать в блокнотах графики Matplotlib. Эта команда активирует интерактивную поддержку Matplotlib для блокнота Jupyter.
Подписывайтесь на канал 👉@pythonofff
Она позволяет отображать в блокнотах графики Matplotlib. Эта команда активирует интерактивную поддержку Matplotlib для блокнота Jupyter.
Подписывайтесь на канал 👉@pythonofff
👍1