×
Traktatov.net » Язык программирования Python » Читать онлайн
Страница 15 из 141 Настройки

Подключение модуля к программе на Python осуществляется с помощью оператора >import. У него есть две формы: >import и >from–import:

>import os

>import pre as re

>from sys import argv, environ

>from string import *

С помощью первой формы с текущей областью видимости связывается только имя, ссылающееся на объект модуля, а при использовании второй — указанные имена (или все имена, если применена >*) объектов модуля связываются с текущей областью видимости. При импорте можно изменить имя, с которым объект будет связан, с помощью >as. В первом случае пространство имен модуля остается в отдельном имени и для доступа к конкретному имени из модуля нужно применять точку. Во втором случае имена используются так, как если бы они были определены в текущем модуле:

>os.system("dir")

>digits = re.compile("\d+")

>print argv[0], environ

Повторный импорт модуля происходит гораздо быстрее, так как модули кэшируются интерпретатором. Загруженный модуль можно загрузить еще раз (например, если модуль изменился на диске) с помощью функции >reload():

>import mymodule

>...

>reload(mymodule)

Однако в этом случае все объекты, являющиеся экземплярами классов из старого варианта модуля, не изменят своего поведения.

При работе с модулями есть и другие тонкости. Например, сам процесс импорта модуля можно переопределить. Подробнее об этом можно узнать в оригинальной документации.

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

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

1. Функции преобразования типов и классы: >coerce, >str, >repr, >int, >list, >tuple, >long, >float, >complex, >dict, >super, >file, >bool, >object

2. Числовые и строковые функции: >abs, >divmod, >ord, >pow, >len, >chr, >unichr, >hex, >oct, >cmp, >round, >unicode

3. Функции обработки данных: >apply, >map, >filter, >reduce, >zip, >range, >xrange, >max, >min, >iter, >enumerate, >sum

4. Функции определения свойств: >hash, >id, >callable, >issubclass, >isinstance, >type

5. Функции для доступа к внутренним структурам: >locals, >globals, >vars, >intern, >dir

6. Функции компиляции и исполнения: >eval, >execfile, >reload, >__import__, >compile

7. Функции ввода–вывода: >input, >raw_input, >open

8. Функции для работы с атрибутами: >getattr, >setattr, >delattr, >hasattr

9. Функции-«украшатели» методов классов: >staticmethod, >classmethod, >property

10. Прочие функции: >buffer, >slice

Совет:

Уточнить назначение функции, ее аргументов и результата можно в интерактивной сессии интерпретатора Python:

>>>> help(len)

>Help on built–in function len:

>len(...)

>len(object) -> integer

>Return the number of items of a sequence or mapping.

Или так:

>>>> print len.__doc__

>len(object) -> integer

>Return the number of items of a sequence or mapping.

Функции преобразования типов и классы

Функции и классы из этой категории служат для преобразования типов данных. В старых версиях Python для преобразования к нужному типу использовалась одноименная функция. В новых версиях Python роль таких функций играют имена встроенных классов (однако семантика не изменилась). Для понимания сути достаточно небольшого примера: