1. Введение

"Библиотека Python" включает множество разных компонентов.

Она содержит типы данных, которые обычно считаются частью «ядра» языка, например, числа и списки. Для этих типов ядро ​​языка Python определяет форму литералов и накладывает некоторые ограничения на их семантику, но полностью не определяет ее. (С другой стороны ядро ​​языка определяет синтаксические свойства как в написании, так и в приоритете операторов.)

Стандартная библиотека Python

Хотя "Справочник по языку Python" описывает точный синтаксис и семантику языка Python, это справочное руководство описывает стандартную библиотеку, распространяемую с Python. Здесь также описываются некоторые дополнительные компоненты, которые обычно включены в дистрибутивы Python.

11.8. Десятичная арифметика с плавающей точкой

Модуль decimal (docs.python.org/3/library/decimal.html#module-decimal) предлагает тип данных Decimal для десятичной арифметики с плавающей точкой. По сравнению с встроенной реализацией бинарного с плавающей точкой типа float, класс особенно полезен для

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

11.7. Инструменты для работы со списками

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

Модуль array предоставляет объект array(), который подобен списку, хранящему только однородные данные, и сохраняет их более компактно. В следующем примере показан массив чисел, хранящихся в виде беззнаковых двухбайтовых двоичных чисел (typecode "H"), а не обычных 16-байтовых как их записывает обычных список в Python в объекты типа int:

11.6. Слабые ссылки

Python автоматически управляет памятью (подсчет ссылок для большинства объектов и сборка мусора для ликвидации циклов). Память освобождается вскоре после того как последняя ссылка на нее была устранена.

11.4. Многопоточность

Поточность представляет собой метод разъединения задач, которые можно выполнять не последовательно. Потоки могут быть использованы для улучшения быстродействия приложений, которые принимают пользовательский ввод, в то время как другие задачи выполняются в фоновом режиме. С этим связан случа использования запущенного ввода/вывода параллельно с вычислениями в другом потоке.

Следующий код показывает, как высокоуровневый модуль threading может выполнять задачи в фоновом режиме во время того, как продолжает работать основная программа:

import threading, zipfile

11.3. Работа с форматами записи двоичных данных

Модуль struct предоставляет функции pack() и unpack() для работы с форматами бинарных записей переменной длины. В следующем примере показано, как цикл проходит по информации заголовка в ZIP-файле без использования модуля zipfile. Упаковка кодов "H" и "I" представляет собой двух- и четырех байтовые числа без знака соответственно. Знак "<" указывает, что они стандартных размеров и в немного обратном порядке байтов:

import struct
 
with open('myfile.zip', 'rb') as f:
    data = f.read()
 
start = 0

11.2. Шаблоны

Модуль string включает в себя универсальный класс Template с упрощенным синтаксисом, подходящий для использования конечными пользователями. Он позволяет пользователям настраивать их приложения без необходимости изменять приложение.

Формат использует "заполняющие" имена, образованные $ с идентификаторами Python (буквенно-цифровые символы и знак подчеркивания). Если "заполнитель" ограничивается фигурными скобками, то это позволяет после него писать еще буквенно-цифровые символы без пробелов. Написание $$ создает вывод одного $:

11.1. Форматирование вывода

Модуль reprlib предоставляет версию repr(), настроенную для укороченных отображений больших или глубоко вложенных контейнеров:

>>> import reprlib
>>> reprlib.repr(set('supercalifragilisticexpialidocious'))
"set(['a', 'c', 'd', 'e', 'f', 'g', ...])"

10.12. Батарейки включены

Python имеет философию "батарейки включены". Это лучше всего видно на сложных и мощных возможностях его более крупных пакетов. Например:

  • Модули xmlrpc.client и xmlrpc.server делают тривиальной задачей реализацию удаленных вызовов процедур. Несмотря на имена модулей, никакого непосредственного знания или обращения к XML не требуется.
Syndicate content