Таинство стандартной библиотеки: functools.singledispatch

Стандартная поставка Python полна возможностями. Хочется упомянуть обобщенные функции. Если простыми словами, то это такие функции, где мы не думаем о типах аргументов, а просто пишем логику. Например, (натянутый пример) оператор "+" - мы не думаем о аргументах, мы просто складывает два объекта.

Для реализации обобщенных функций в Python 3 (начиная с 3.4) появился метод singledispatch в модуле functools.

>>> @fun.register ...
more ...

Таинство стандартной библиотеки: functools.partial

Представим, написали мы функцию:

def super_function(server_name, host):
....print(server_name)
...........
....run_server(host)

Но вот беда, первый аргумент - имя сервера у вас уже есть. А второй, ip сервера, вы получите от пользователя, а функцию уже надо вызвать. Можно, конечно, дождаться когда будет два аргумента, тогда и запустить. А можно пойти по другому пути - воспользоваться механизмом каррирования - такое страшное слово.

Каррирование - преобразование ...

more ...

Таинство стандартной библиотеки: примеры для asyncio - aiohttp

Asyncio - это модуль содержащий инфраструктуру пригодную для написания асинхронных сетевых приложений. Благодаря концепции сопрограмм (coroutines), код асинхронного приложения прост для понимания и поддержки.

Экосистема развивается не по дням, а по часам. Стоит обратить внимание на развитие этого направления современного Python

more ...

Магические методы в Python

Статья от Rafe Kettler.

Что такое магические методы? Они всё в объектно-ориентированном Питоне. Это специальные методы, с помощью которых вы можете добавить в ваши классы «магию». Они всегда обрамлены двумя нижними подчеркиваниями (например, init или lt). Ещё, они не так хорошо документированны, как хотелось бы. Все магические методы описаны в документации, но весьма беспорядочно и почти безо всякой организации. Поэтому ...

more ...

Таинство стандартной библиотеки: collections

Модуль collections - предоставляет специализированные типы данных, на основе словарей, кортежей, множеств, списков. Этот модуль хорошо себя показывает при частой работе со словарями и списками. Например, данный модуль предоставляет возможность посчитать n наиболее часто встречающихся элементов, в порядке убывания встречаемости. Есть в этом модуле и словарь, который помнит порядок ключей. А еще есть структура, которая позволяет создать объект ведущий себя как ...

more ...

Таинство стандартной библиотеки: datetime и calendar

Стандартная поставка Python содержит множество инструментов для решения задач. Например, для работы с датами отлично себя показывают datetime и calendar

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

Модуль calendar позволяет напечатать себе календарик (а также содержит некоторые другие ...

more ...

Статистический модуль в стандартной библиотеке

Статистический модуль теперь есть в стандартной библиотеке. Начиная с версии 3.4 в стандартной поставке Python появилось более продвинутое средство для работы с данными. Теперь нет необходимости писать руками методы average, median (вычисление среднего и медианы) и других. Ознакомьтесь с возможностями стандартного модуля:

https://docs.python.org/3/library/statistics.html

more ...

Регулярные выражения

Предположим, у нас есть задача - выдрать из крупного текстового файла (файла с логами) все IPv4 (адреса клиентов, например). Как это можно сделать?

Хорошим инструментом для решения этой задачи являются регулярные выражения. Регулярное выражение — это последовательность символов, используемая для поиска и замены текста в строке или файле.
Возможно, вы уже встречались с записями типа:

<([a-z]+)[^>]*(?<!/)>

Большая вероятность, что это было регулярное ...

more ...

Встроенные функции Python

Стандартная библиотека Python отличается хорошей документацией и широким ассортиментом готовых решений. Python предоставляет без малого 68 встроенных функций: это получение модуля числа, бинарное и hex представления числа, различные преобразование типов, сложение, возведение в степень и многие другие.

https://docs.python.org/3.5/library/functions.html

А вы знали, что в Python всё является объектом? Даже число

>>> dir(5)
['__abs__ ...
more ...

PEP 471 (Python 3.5) добавил в модуль os новую функцию - scandir.

PEP 471 (Python 3.5) добавил в модуль os новую функцию - scandir.

Функция scandir возвращает генератор, который содержит директории по пути. Польза scandir состоит в производительности. Теперь os.listdir и os.walk будут работать в 2-20 раз быстрее.

Пример: функция, которая возвращает генератор с директориями начинающиеся с точки:

def subdirs(path):
    """Yield directory names not starting with '.' under given path ...
more ...