>Queue
.4. Хранение данных. Архивация. Модули: >pickle
, >shelve
, >anydbm
, >gdbm
, >gzip
, >zlib
, >zipfile
, >bz2
, >csv
, >tarfile
.
5. Платформо–зависимые модули. Для UNIX: >commands
, >pwd
, >grp
, >fcntl
, >resource
, >termios
, >readline
, >rlcompleter
. Для Windows: >msvcrt
, >_winreg
, >winsound
.
6. Поддержка сети. Протоколы Интернет. Модули: >cgi
, >Cookie
, >urllib
, >urlparse
, >httplib
, >smtplib
, >poplib
, >telnetlib
, >socket
, >asyncore
. Примеры серверов: >SocketServer
, >BaseHTTPServer
, >xmlrpclib
, >asynchat
.
7. Поддержка Internet. Форматы данных. Модули: >quopri
, >uu
, >base64
, >binhex
, >binascii
, >rfc822
, >mimetools
, >MimeWriter
, >multifile
, >mailbox
. Пакет >email
.
8. Python о себе. Модули: >parser
, >symbol
, >token
, >keyword
, >inspect
, >tokenize
, >pyclbr
, >py_compile
, >compileall
, >dis
, >compiler
.
9. Графический интерфейс. Модуль >Tkinter
.
Очень часто модули содержат один или несколько классов, с помощью которых создается объект нужного типа, а затем речь идет уже не об именах из модуля, а об атрибутах этого объекта. И наоборот, некоторые модули содержат лишь функции, слишком общие для того, чтобы работать над произвольными объектами (либо достаточно большой категорией объектов).
Сервисы периода выполнения
Модуль sys содержит информацию о среде выполнения программы, об интерпретаторе Python. Далее будут представлены наиболее популярные объекты из этого модуля: остальное можно изучить по документации.
>exit([c]) | Выход из программы. Можно передать числовой код завершения: 0 в случае успешного завершения, другие числа при аварийном завершении программы. |
>argv | Список аргументов командной строки. Обычно >sys.argv[0] содержит имя запущенной программы, а остальные параметры передаются из командной строки. |
>platform | Платформа, на которой работает интерпретатор. |
>stdin , >stdout , >stderr | Стандартный ввод, вывод, вывод ошибок. Открытые файловые объекты. |
>version | Версия интерпретатора. |
>setrecursionlimit(limit) | Установка уровня максимальной вложенности рекурсивных вызовов. |
>exc_info() | Информация об обрабатываемом исключении. |
Этот модуль содержит функции для копирования объектов. Вначале предлагается к рассмотрению «парадокс», который вводит в замешательство новичков в Python:
>lst1 = [0, 0, 0]
>lst = [lst1] * 3
>print lst
>lst[0][1] = 1
>print lst
В результате получается, возможно, не то, что ожидалось:
>[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
>[[0, 1, 0], [0, 1, 0], [0, 1, 0]]
Дело в том, что список >lst
содержит ссылки на один и тот же список! Для того чтобы действительно размножить список, необходимо применить функцию >copy()
из модуля >copy
:
>from copy import copy
>lst1 = [0, 0, 0]
>lst = [copy(lst1) for i in range(3)]
>print lst
>lst[0][1] = 1
>print lst
Теперь результат тот, который ожидался:
>[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
>[[0, 1, 0], [0, 0, 0], [0, 0, 0]]
В модуле >copy
есть еще и функция >deepcopy()
для глубокого копирования, при которой объекты копируются на всю возможную глубину, рекурсивно.
В этих модулях собраны математические функции для действительных и комплексных аргументов. Это те же функции, что используются в языке C. В таблице ниже даны функции модуля