×
Traktatov.net » Язык программирования Python » Читать онлайн
Страница 18 из 141 Настройки
, >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

Модуль sys содержит информацию о среде выполнения программы, об интерпретаторе Python. Далее будут представлены наиболее популярные объекты из этого модуля: остальное можно изучить по документации.

>exit([c])Выход из программы. Можно передать числовой код завершения: 0 в случае успешного завершения, другие числа при аварийном завершении программы.
>argvСписок аргументов командной строки. Обычно >sys.argv[0] содержит имя запущенной программы, а остальные параметры передаются из командной строки.
>platformПлатформа, на которой работает интерпретатор.
>stdin, >stdout, >stderrСтандартный ввод, вывод, вывод ошибок. Открытые файловые объекты.
>versionВерсия интерпретатора.
>setrecursionlimit(limit)Установка уровня максимальной вложенности рекурсивных вызовов.
>exc_info()Информация об обрабатываемом исключении.
Модуль copy

Этот модуль содержит функции для копирования объектов. Вначале предлагается к рассмотрению «парадокс», который вводит в замешательство новичков в 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() для глубокого копирования, при которой объекты копируются на всю возможную глубину, рекурсивно.

Модули math и cmath

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